'10'附近语法不正确

Sar*_*shi -1 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();
Run Code Online (Sandbox Code Playgroud)

'10'附近的语法不正确我在日期猜测中收到此错误请帮助我

rec*_*ive 5

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


pax*_*blo 5

每当你在一行中出现错误时:

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

你应该立即插入一些代码打印出来并检查它是否是有效的SQL:

Console.WriteLine ("INSERT INTO Instalment_Billing(" +
    "ID,Pay_Date, Fees) VALUES (" + ID + "," + date + "," + a + ")");
Run Code Online (Sandbox Code Playgroud)

要么:

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

这应该会告诉您问题的确切位置.最有可能的日期插入应该使用格式'yyyy.mm.dd'或类似的字符串,所以你应该至少:

  • 引用日期字符串(... + ",'" + date + "'," + ...).
  • 确保它的格式没问题(我不确定什么ToString()会让你脱离我的头脑但是我想,鉴于你今天发布了这个并且它不是本月的第十个月或第十天,它可能是某些东西喜欢yy-mm-dd和2010年的无报价10导致你的悲伤).