2015-08-26 3 views
0

Я создал какое-то приложение, которое хранит базу данных сотрудников и их платежи. Пока это работает. Но теперь я пытаюсь реализовать функцию «обновления», если есть некоторые данные, которые изменяются для конкретного пользователя.Обновление значений в локальной ошибке базы данных: свойство CommandText не было инициализировано

Так что я написал следующий код для обновления, но я получаю эту ошибку:

CommandText property has not been initialized at line 105: "cmd.ExecuteNonQuery();"

Спасибо!

var connString = @"Data Source=C:\Users\Andrei\Documents\Visual Studio 2010\Projects\Stellwag\Stellwag\Angajati.sdf"; 

using (var conn = new SqlCeConnection(connString)) 
{ 
    try 
    { 
     conn.Open(); 

     SqlCeCommand cmd = new SqlCeCommand(); 
     //conecteaza cmd la conn 
     cmd.Connection = conn; 

     //adauga parametru pt campul poza cu value image 
     SqlCeParameter picture = new SqlCeParameter("@Poza", SqlDbType.Image); 

     MemoryStream ms = new MemoryStream(); 
     pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat); 
     byte[] a = ms.GetBuffer(); 
     ms.Close(); 

     cmd.Parameters.Clear(); 
     cmd.Parameters.AddWithValue("@Poza", a); 

     var query = "UPDATE info SET Nume='" + textBox5.Text + "' AND Prenume='" + textBox4.Text + "' AND Data='" + dateTimePicker1.Value.ToShortDateString() + "' AND Proiect='" + textBox1.Text + "' AND Schimburi='" + label10.Text + "' AND [email protected] AND Acord='" + textBox2.Text + "' AND Baza='" + textBox3.Text + "' WHERE Nume='" + label8.Text + "' AND Prenume='" + label5.Text + "'"; 

     cmd.ExecuteNonQuery(); 

     MessageBox.Show("Salvat cu succes!"); 
     this.Close(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
} 
+0

[SQL Injection alert] (http://msdn.microsoft.com/en-us/library/ms161953%28v=sql.105%29.aspx) - вы должны ** не ** объединить свои SQL-выражения - используйте ** параметризованные запросы ** вместо этого, чтобы избежать SQL-инъекции –

ответ

3

Вы должны установить cmd.CommandText

   //Codes 
       cmd.CommandText = query; 
       cmd.ExecuteNonQuery(); 
       MessageBox.Show("Salvat cu succes!"); 
       this.Close(); 
+0

Решено. Спасибо – Ezekiel

+0

Наборы значений должны быть разделены ',' not 'AND' –

+0

Получил это. Благодаря ! – Ezekiel

1

Добавить cmd.CommandText = query; выше вашего исполнения.

+0

Спасибо. Решаемые. Пропущенный напечатан. – Ezekiel