2010-07-30 2 views
-1
SqlConnection con = new SqlConnection(str); 
int ID; 
ID = Int32.Parse(Combo_Stu.SelectedValue.ToString()); 
double a = double.Parse(Txt_Ins.Text); 
string date = dtp_Stu.Value.ToString(); 
SqlCommand sqlcmd1 = new SqlCommand("INSERT INTO Instalment_Billing(ID,Pay_Date, Fees) VALUES (" + ID + "," + **date** + "," + a + ")", con); 
con.Open(); 
sqlcmd1.ExecuteNonQuery(); 

Неправильный синтаксис около «10» Я получаю эту ошибку в дате Угадайте PLS помочь мнеНеправильный синтаксис возле «10»

+0

Лучше проверить ответ от Pax как хороший ответ, так как он решил вашу проблему. – riffnl

ответ

5

Проблема, вероятно, что ваша дата неупомянута, но реальное решение эта проблема заключается в использовании параметризованного запроса.

5

Когда вы получите ошибку в строке, например:

SqlCommand sqlcmd1 = new SqlCommand("INSERT INTO Instalment_Billing(" + 
    "ID,Pay_Date, Fees) VALUES (" + ID + "," + date + "," + a + ")", con); 

вы должны немедленно вставить код, чтобы распечатать его и проверить, является ли он действительным SQL:

Console.WriteLine ("INSERT INTO Instalment_Billing(" + 
    "ID,Pay_Date, Fees) VALUES (" + ID + "," + date + "," + a + ")"); 

или:

System.Windows.Forms.MessageBox.Show("INSERT INTO Instalment_Billing" + 
    "(ID,Pay_Date, Fees) VALUES (" + ID + "," + date + "," + a + ")"); 

Это должно показать вам точно, где ваша проблема. Скорее всего Вставки дат следует использовать строки формата 'yyyy.mm.dd' или что-то подобное, так что вы должны, как минимум:

  • процитировать строки даты (... + ",'" + date + "'," + ...).
  • убедитесь, что его формат в порядке (я не уверен, что ToString() оттолкнет вас от головы, но я думаю, учитывая, что вы разместили это сегодня, и это не десятый месяц или десятый день месяца, что это, вероятно, что-то вроде yy-mm-dd, а неупомянутый 10 из 2010 года вызывает у вас горе).
+0

SqlConnection con = new SqlConnection (str); int ID; ID = Int32.Parse (Combo_Stu.SelectedValue.ToString()); double a = double.Parse (Txt_Ins.Text); string date = dtp_Stu.Value.ToString ("yyyy-MM-dd"); SqlCommand sqlcmd1 = новый SqlCommand («INSERT INTO Instalment_Billing (ID, Pay_date, Fees)» VALUES (1, CONVERT (DATETIME, «+» + «», 102), 100) «, con); con.Open(); sqlcmd1.ExecuteNonQuery(); Спасибо большое Я изменил свою входную строку на yyyy-MM-dd, и она сработала –

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