C#+ Oracle.DataAccess.Client - 没有响应执行sql update语句

时间:2015-02-12 21:00:31

标签: c# sql winforms oracle

我尝试更新某些字段(以前在DataGridView中选择并显示)。由于某种原因,当我试图执行sql update语句(ExecuteNonQuery)时,WinForms应用程序没有响应。我的代码出了什么问题?

private void button19_Click(object sender, EventArgs e)
    {        
        if (ora_dataset.Tables["SWAP_2G_CELLS"].Rows.Count > 0)
        {
           foreach (DataRow row in ora_dataset.Tables["SWAP_2G_CELLS"].Rows)
           {
               string swap = row.ItemArray[13].ToString();
               string flag = row.ItemArray[14].ToString();
               string data = row.ItemArray[15].ToString();

               string sql_update = System.IO.File.ReadAllText("SQL/SWAP/swap_2g_update.dat");

               sql_update = sql_update.Replace("%SWAP_PARAM%", swap);
               sql_update = sql_update.Replace("%FLAG_PARAM%", flag);
               sql_update = sql_update.Replace("%DATE_PARAM%", data);
               sql_update = sql_update.Replace("%SITE_ID_PARAM%", row.ItemArray[1].ToString());
               sql_update = sql_update.Replace("%LAC_PARAM%", row.ItemArray[7].ToString());

               OracleCommand cmd = new OracleCommand();
               OracleConnection con = new OracleConnection(connstring);
               cmd.Connection = con;
               //cmd.CommandType = CommandType.Text;
               cmd.CommandText = sql_update;
               cmd.Connection.Open();
               int count = cmd.ExecuteNonQuery();
               cmd.Connection.Close();
               cmd.Dispose();
           }
        }

参数替换sql string在我的数据集中的第一行看起来像这样:

UPDATE SWAP_2G
SET 
SWAP = 'P'
,FLAG1 = '1'
,DATA_SWAP = TO_DATE('12-02-15 00:00:00', 'dd-mm-yy hh24:mi:ss')
WHERE SITE_ID = '2664' AND LAC LIKE '39002'

我尝试使用Oracle SQL Developer执行它,并且它可以正常工作。

0 个答案:

没有答案