我有一個c#.net程序,我需要先使用sql連接將數據插入到表中,然後使用ADO.net調整同一組數據。我不確定如何確保在執行ado.net更改之前通過sql連接插入完成。我在嘗試下面的代碼時遇到併發衝突。我猜想這是一個競賽狀況問題。C#.net併發問題 - SQL連接然後ADO.net更改
我在UpdateAll語句的點越來越併發衝突錯誤,我似乎無法繞過它
感謝您的幫助。
下面是一個代碼示例,其中SQL和ado.net的變化大大簡化了。
try
{
String deleteQuery = "DELETE FROM dbo.TABLENAME";
String reportQuery = @"
INSERT INTO TABLENAME
(
COLUMN1,
COLUMN2,
COLUMN3
)
SELECT
COLUMN1,
COLUMN2,
COLUMN3
FROM OTHERTABLES
";
SqlConnection ReportConnect = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = ReportConnect;
cmd.CommandTimeout = Convert.ToInt32(Properties.Settings.Default.ReportTimeout.ToString());
ReportConnect.Open();
cmd.CommandText = deleteQuery;
cmd.ExecuteNonQuery();
cmd.CommandText = reportQuery;
cmd.ExecuteNonQuery();
ReportConnect.Close();
ReportConnect.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
try
{
foreach (DataRow dr in DataSet.TABLENAME)
{
dr[0] = whatever;
dr[0] = 100;
dr[0] = 42.42;
}
}
catch (Exception ax)
{
MessageBox.Show(ax.Message);
}
finally
{
this.tableAdapterManager.UpdateAll(this.DataSet);
}
是否this.DataSet包含表「TABLENAME」中的相同值? – 2009-09-16 05:09:05
是的。我這樣做是因爲我需要對無法使用sql執行的數據集進行復雜的財務計算。我使用第一部分的結果作爲種子來執行第二部分中的caclulations,然後將它們放在完全相同的表格中。 – 2009-09-16 06:06:31