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类型,Seats存储为int,DateNTime存储为DateTime。 有人可以帮我这个吗?
提前致谢
答案 0 :(得分:2)
还需要日期报价:
,'" + DateTime.Now.ToString("yyyyMMdd") + "')"
但是你知道这是非常危险的代码。你真的应该使用参数化查询来做这些事情!
如果用户在“标题”文本框中输入以下内容,您将遇到麻烦:
一些文字',1,1,' 20100101'); drop table dbo.Orders -
你被解雇了一天。
答案 1 :(得分:1)
错误很可能就在这里:
... ,"+DateTime.Now+")"
您必须确保DateTime.Now的字符串表达式在SQL中是可解析的。
答案 2 :(得分:1)
猜测这是从c#代码中调用的,你应该使用参数而不是将字符串连接成sql语句。
这样可以保护您免受std::weak_ptr攻击并修复语法错误:
这段代码可能适合你,虽然它写在这里,我没有测试它:
var allRows = document.getElementById('destination').rows;
for(var i=0; i< allRows.length; i++) {
if (allRows[i].cells.length > 0) {
allRows[i].deleteCell(-1);// logic to remove the last column
allRows[i].deleteCell(0);// logic to remove the first column of the modified table.
}
}
答案 3 :(得分:0)
尝试使用以下
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();
即使在修改之后,如果您收到错误,请告诉标题,席位,付款,日期时间的数据类型
答案 4 :(得分:0)
您还有格式化日期部分。
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();