2010-09-28 3 views
0

У меня есть следующий SQLCommand, который должен выполнить обновление. Проблема в том, что я не получаю никаких ошибок, но он по-прежнему не обновляет базу данных?Заявление об обновлении в 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(); 

ответ

0

используя сделка? то перехват фиксации отсутствует?

НТН

Марио

+0

Вы должны объединить свои два ответа в один Марио. –

2

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

+0

Нет протестировали его с прилавка. dt.Rows содержит 19000 объектов, а foreach также работает 19000 раз. Итак, у меня есть enaugh объекты, и foreach отлично работает. – 2010-09-28 14:20:16

0

Perhapse также где положение не соответствует ни строки в БД?

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

НТН

Марио

Смежные вопросы