[英]ExecuteNonQuery Incorrect syntax near ','
sqlCommand1 = new SqlCommand("INSERT INTO dbo.Orders(Title,Seats,Payment,DateNTime)"+
"VALUES ('"+ movieName+"',"+numTickets+",'"+creditCardType+"',"+DateTime.Now+")", sqlConnection1);
sqlCommand1.Connection.Open();
sqlCommand1.ExecuteNonQuery();
sqlCommand1.Connection.Close();
不知道這段代碼有什么問題。 標題和付款存儲為nvarchar類型,席位存儲為int,DateNTime存儲為DateTime。 有人可以幫我弄這個嗎?
提前致謝
日期也需要報價:
,'" + DateTime.Now.ToString("yyyyMMdd") + "')"
但這是非常危險的代碼。 您確實應該對此類參數使用參數化查詢!
如果用戶在“標題”文本框中輸入如下內容,則會遇到麻煩:
一些文本”,1、1,“ 20100101”); 刪除表dbo.Orders--
並且您在同一天被解雇。
錯誤很可能在這里:
... ,"+DateTime.Now+")"
您必須確保DateTime.Now的字符串表達式在SQL中是可解析的。
猜測這是從C#代碼中調用的,應該使用參數而不是將字符串連接到sql語句中。
這既可以保護您免受sql注入攻擊,又可以修復語法錯誤:
該代碼可能應該對您有用,盡管它是在此處編寫的,但我並未對其進行測試:
using (var sqlConnection1 = new SqlConnection("ConnectionString"))
{
using (var sqlCommand1 = new SqlCommand("INSERT INTO dbo.Orders(Title,Seats,Payment,DateNTime)" +
"VALUES (@movieName, @numTickets, @creditCardType, @DateTime.Now)", sqlConnection1))
{
sqlCommand1.Parameters.Add("@movieName", SqlDbType.VarChar).Value = movieName;
sqlCommand1.Parameters.Add("@numTickets", SqlDbType.VarChar).Value = numTickets;
sqlCommand1.Parameters.Add("@creditCardType", SqlDbType.Int).Value = creditCardType;
sqlCommand1.Parameters.Add("@movieName", SqlDbType.DateTime).Value = DateTime.Now;
sqlCommand1.Connection.Open();
sqlCommand1.ExecuteNonQuery();
}
}
嘗試使用以下
sqlCommand1 = new SqlCommand("INSERT INTO dbo.Orders(Title,Seats,Payment,DateNTime)"+
"VALUES ('"+ movieName+"',"+numTickets+",'"+creditCardType+"','"+DateTime.Now+"')", sqlConnection1);
sqlCommand1.Connection.Open();
sqlCommand1.ExecuteNonQuery();
sqlCommand1.Connection.Close();
即使在修改之后,如果您遇到錯誤,也請告訴標題,座席,付款,日期NTime的數據類型
您也有格式日期部分。
sqlCommand1 = new SqlCommand("INSERT INTO dbo.Orders(Title,Seats,Payment,DateNTime)"+
"VALUES ('"+ movieName+"',"+numTickets+",'"+creditCardType+"','"+DateTime.Now.ToString("yyyyMMdd")+"')", sqlConnection1);
sqlCommand1.Connection.Open();
sqlCommand1.ExecuteNonQuery();
sqlCommand1.Connection.Close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.