SQLCommand中的Update语句不起作用

时间:2010-09-28 13:51:04

标签: c# sql sql-update

我有以下SQLCommand应该进行更新。问题是,我没有错误,但它仍然没有更新数据库?

        SqlConnection sqlconn2 = new SqlConnection(this.connectionString);
        sqlconn2.Open();

        string strCmd = "UPDATE dbo.mydata SET WEB_OBEZ1 = @OBEZ1, WEB_OBEZ2 = @OBEZ2, WEB_OBEZ3 = @OBEZ3 WHERE O_KURZ = @OKURZ";

        using (SqlCommand cmd2 = new SqlCommand(strCmd, sqlconn2))
        {
            cmd2.Parameters.Add("@OBEZ1", SqlDbType.NVarChar);
            cmd2.Parameters.Add("@OBEZ2", SqlDbType.NVarChar);
            cmd2.Parameters.Add("@OBEZ3", SqlDbType.NVarChar);
            cmd2.Parameters.Add("@OKURZ", SqlDbType.NVarChar);


            foreach (DataRow dr in dt.Rows)
            {
                // Felder holen
                string okuerzel = dr["O_KURZ"].ToString();
                string bezeichnung = dr["O_BEZ"].ToString();


                    string[] lines = CreateNewOrgBez(bezeichnung);

                    cmd2.Parameters["@OBEZ1"].Value = lines[0];
                    cmd2.Parameters["@OBEZ2"].Value = lines[1];
                    cmd2.Parameters["@OBEZ3"].Value = lines[2];
                    cmd2.Parameters["@OKURZ"].Value = okuerzel;
                    cmd2.ExecuteNonQuery();

            }
        }
        sqlconn2.Close();

3 个答案:

答案 0 :(得分:2)

dt.Rows的长度可能为零。你检查过这个吗?

答案 1 :(得分:0)

使用交易?然后perhapse缺少提交?

HTH

马里奥

答案 2 :(得分:0)

Perhapse还有where子句与db中的任何行都不匹配吗?

ExecuteNonQuery()返回受影响的行数,检查它!

HTH

马里奥