组合框中的日期时间

时间:2011-02-18 13:50:35

标签: sql sql-server vb.net

我正在使用visual stdio 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”

请帮帮我

3 个答案:

答案 0 :(得分:2)

您需要在日期周围添加引号。

尝试

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

答案 1 :(得分:1)

我怀疑它将它视为分隔符。将其更改为

会更好
WHERE Purchase_master.Date=@Your_date

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

答案 2 :(得分:0)

试试这个:

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());

您必须为该值添加引号。 :)