'10'附近语法不正确

时间:2010-07-30 05:08:34

标签: c# sql

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”附近的语法不正确 我在约会时收到此错误 猜猜请帮助我

2 个答案:

答案 0 :(得分:5)

问题可能是你的日期没有引用,但这个问题的真正解决方案是使用参数化查询。

答案 1 :(得分: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而2010年的未引用10则令你感到悲伤。