Оператор обновления в SQLCommand не работает - PullRequest
0 голосов
/ 28 сентября 2010

У меня есть следующий 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 ]

2 голосов
/ 28 сентября 2010

Возможно, длина dt.Rows равна нулю.Вы проверяли это?

0 голосов
/ 28 сентября 2010

Проанализировать также, где предложение where не соответствует ни одной строке в БД?

ExecuteNonQuery () возвращает количество затронутых строк, проверьте его!

hth

Марио

0 голосов
/ 28 сентября 2010

используя транзакции?затем выполнить коммит отсутствует?

hth

Марио

...