日期时间

问题描述:

我使用视觉标准输入输出2008和SQL Server 2005日期时间

dim selectquery = "SELECT Purchase_master.Customer_name, Purchase_details.Item_code, Item_Master.Name, 
    Purchase_details.Quantity, Purchase_details.Cost, Purchase_master.Date 
    FROM Item_Master INNER JOIN (Purchase_master INNER JOIN Purchase_details ON 
    Purchase_master.Bill_id = Purchase_details.Bill_id) ON Item_Master.Item_code = Purchase_details.Item_code 
    WHERE Purchase_master.Date= " + cboPDate.SelectedValue.ToString() 

当这selectquery执行它给了我 错误

“错误附近有语法12”

我cboPDate被一个组合框与我的数据库绑定返回的数据和时间 “2/18/2011 12:00:00 AM”

请帮我出

我怀疑它是把它当作一个delimiter.It会更好,将其更改为

WHERE [email protected]_date 

然后添加日期作为参数,这将防止SQL注入攻击,也促进计划缓存

您需要在日期前后添加引号。

尝试

dim selectquery = "SELECT Purchase_master.Customer_name, Purchase_details.Item_code, Item_Master.Name, 
    Purchase_details.Quantity, Purchase_details.Cost, Purchase_master.Date 
    FROM Item_Master INNER JOIN (Purchase_master INNER JOIN Purchase_details ON 
    Purchase_master.Bill_id = Purchase_details.Bill_id) ON Item_Master.Item_code = Purchase_details.Item_code 
    WHERE Purchase_master.Date= '" + cboPDate.SelectedValue.ToString() +"'" 

更重要的是,使用SQL parameters

+0

现在它显示此错误“语法不正确'2/18/2011 12:00:00 AM'。” – CHANDRAHAS 2011-02-18 13:57:06

+0

这听起来很奇怪。如果你调试并复制selectquery的值,你会得到什么?在执行之前是否追加其他选择查询? – Kamal 2011-02-18 14:01:07

试试这个:

dim selectquery = string.Format("SELECT Purchase_master.Customer_name,  Purchase_details.Item_code, Item_Master.Name, 
Purchase_details.Quantity, Purchase_details.Cost, Purchase_master.Date 
FROM Item_Master INNER JOIN (Purchase_master INNER JOIN Purchase_details ON 
Purchase_master.Bill_id = Purchase_details.Bill_id) ON Item_Master.Item_code = Purchase_details.Item_code 
WHERE Purchase_master.Date= '{0}'", cboPDate.SelectedValue.ToString()); 

你必须quots增加值。 :)