SDA.SelectCommand.ExecuteNonQuery ();System.Data.SqlClient.SqlException: 'Неверный синтаксис рядом с' {'.' - PullRequest
0 голосов
/ 03 июня 2019

Вот снимок ошибки, я не знаю, что я делаю неправильно:

введите описание изображения здесь

private void Form1_Load(object sender, EventArgs e)
{
    con.Open();
    String query = "INSERT INTO STOCK_IN { SIN_No., PO_NO., Product_ID, Received_Date, Quantity } VALUES ('"+textBox1.Text+ "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "')";

    SqlDataAdapter SDA = new SqlDataAdapter(query , con);
    SDA.SelectCommand.ExecuteNonQuery();
    con.Close();

    MessageBox.Show("DATA INSERTED SUCCESSFULLY");
}

Ответы [ 3 ]

2 голосов
/ 03 июня 2019

В фигурных скобках указан неверный синтаксис. Также попробуйте что-то подобное, чтобы обработать эту вставку и отловить ошибки. Кроме того, после SIN_NO есть завершающий период, и я не знаю, является ли это частью названия вашего столбца или опечаткой.

private void Form1_Load(object sender, EventArgs e)
{
    String query = "INSERT INTO STOCK_IN(SIN_No., PO_NO., Product_ID, Received_Date, Quantity) VALUES (@val1, @val2, @val3, @val4, @val5)";

    SqlDataAdapter sda = new SqlDataAdapter();

    try
    {
        using (SqlCommand cmd = new SqlCommand(query, con))
        {
            con.Open();
            cmd.Parameters.Add("@val1", SqlDbType.VarChar).Value = textBox1.Text;
            //Then the same for 2, 3, 4, 5

            sda = cmd.ExecuteNonQuery();
        }
    }
    catch (SqlException ex) 
    {
         Console.WriteLine(ex.Message); 
    }
    finally 
    { 
         con.Close(); 
         MessageBox.Show("DATA INSERTED SUCCESSFULLY"); 
    }
}
0 голосов
/ 04 июня 2019

Шаг 1: изменить {} на ().

Шаг 2: Проблема в том, что в именах ваших столбцов есть специальные символы. Используйте [ ], чтобы указать имя столбца, который содержит специальный символ (например, точка). Попробуй это; это решит вашу проблему.

 INSERT INTO STOCK_IN ([SIN_No.],[PO_NO.], Product_ID, Received_Date, Quantity)
 VALUES ('"+ textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" +textBox4.Text + "','" + textBox5.Text + "')
0 голосов
/ 03 июня 2019

Попробуйте изменить { на ( так же, как и закрывающий. Так что INSERT INTO STOCK_IN ( и закройте его с ) вместо }.

INSERT INTO STOCK_IN( SIN_No., PO_NO., Product_ID, Received_Date, Quantity)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...