【发布时间】:2018-10-02 15:32:49
【问题描述】:
这部分代码有问题,我正在尝试在我的预订表中插入一条记录。我要输入的值是 (6, 3, 3, 20/06/2018 00:00:00, 400, 2800.00, True, 560.00)
public void insertBooking(int bookingID, int customerID, int entertainmentID,
DateTime bookingDate, int numberOfGuests, double price,
bool deposit, decimal depositPrice)
{
db.Cmd = db.Conn.CreateCommand();
db.Cmd.CommandText = "INSERT INTO Booking (bookingID, customerID, entertainmentID,
[Booking Date], [Number Of Guests], [Price], [Deposit?],
[Deposit Price]) " + "Values ('" + bookingID + "','" +
customerID + "','" + entertainmentID + "','" +
bookingDate + "','" + numberOfGuests + "','" + price +
"','" + deposit + "','" + depositPrice + "')";
db.Cmd.ExecuteNonQuery();
}
我得到的错误如下,
"从字符转换日期和/或时间时转换失败 字符串。”
我已尽力研究此问题,但我不知道如何解决此问题。任何帮助表示赞赏。
【问题讨论】:
-
学习使用参数进行查询。不要使用字符串常量进行查询。
-
解决您的问题和 SQL 注入的方法总是相同的。使用参数
-
对不起应该说它们是参数,我说我输入的值只是例子
-
@ConorCasey 那些不是 sql 参数。我们告诉你的是使用Command对象stackoverflow.com/questions/542510/…的Parameters集合
-
@Steve 哦,对了,我的错,我现在明白你的意思了,谢谢你的建议,但 Kzrystof 的回答仍然对我有用。谢谢大家。
标签: c# sql datetime sql-insert