2014-02-06 3 views
0

Мне нужна помощь по этой проблеме, ведь я несколько дней застрял. Я запускаю приложение, где идея состоит в том, чтобы хранить в продуктах db с определенными атрибутами, показывать их на DataGridView и редактировать их, если это так.Мой запрос не работает

Я правильно вставляю информацию на db, и она хранится правильно. Теперь, когда я пытаюсь их отредактировать, я правильно звоню в db с DataGridView, и когда я редактирую информацию, у меня есть это ERROR MESSAGE: incorrect syntax near '('

Это мой код, если кто-то может мне помочь, я был бы очень доволен.

Все это находится внутри метода "Edit":

string constring = "Data Source=MyPC;Initial Catalog=StockCenter;Integrated Security=True"; 
    string Query = "update MyPC.StockCenter.dbo.Productos set (id_producto='" + this.txtCodigo + "',Marca='" + this.txtMarca.Text + "',Capacidad='" + this.txtCapacidad.Text + "',Proveedor='" + this.cboProveedores.SelectedValue + "',PrecioLista='" + this.txtPrecioLista.Text + "',PrecioVenta'" + this.txtPrecioVenta.Text + "' where id_productos='" + this.txtCodigo.Text + "')"; 
    SqlConnection conDataBase = new SqlConnection(constring); 
    SqlCommand cmdDataBase = new SqlCommand(Query, conDataBase); 
    SqlDataReader myReader; 
    try 
    { 
     conDataBase.Open(); 
     myReader = cmdDataBase.ExecuteReader(); 
     MessageBox.Show("Edited"); 
     while (myReader.Read()) 
     { 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 

Я верю проблема на строку запроса.

+0

Что собственно текст SQL, который передается в базу данных? –

+0

вам не хватает '=' после 'PrecioVenta'. –

+0

Почему вы заключили в комплект и где часть в скобках. Удалить "(" после SET и ")" в конце запроса. –

ответ

1

Ваш запрос не работает, потому что вы пропустили знак «=» здесь : PrecioVenta ' "+ this.txtPrecioVenta.Text +"'

Так Обновите его сообщение: PrecioVenta = ' "+ this.txtPrecioVenta.Text +"'

+0

Да, это была другая ошибка. 1-й я удалил «(» и «)», что у меня был не так, и я узнал об этой ошибке. Много thx за помощь! – Martin

1

Использование SqlParameter .. Таким образом, вы бы избежать атак SQL инъекции, приложив данные с ' или " & других вопросов ..

String query = "update MyPC.StockCenter.dbo.Productos set [email protected]_producto,..." 
SqlCommand command = new SqlCommand(query, connection); 

command.Parameters.Add(new SqlParameter("id_producto", this.txtCodigo)); 
//other paramters 

command.ExecuteNonQuery(); 
+0

Thx за предложение, я научусь использовать эти параметры! Спасибо! – Martin

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