如何解决这个问题, 当我运行我的代码时,它会给出日期错误吗?
public static DataTable offers(string todaysdate)
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT Validation.valid_image FROM Validation WHERE (Valid_date <= @today) AND (Valid_Expire >= @today) ", con);
cmd.Parameters.AddWithValue("@today", todaysdate);
sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
con.Close();
return dt;
}
答案 0 :(得分:2)
1.我看到您的参数应该是@today,因为您要将参数添加到sql命令,并将@today作为参数名称。
2.但是你在内联sql中使用@todya,为什么它会抛出参数不正确的错误。
3.我猜你错过拼写更改@todya到@today,将@todya更改为@today以解决问题。
4.删除内联sql传递中@today周围的引号为@today,而不是像这样“@today”,这应解决问题。
SELECT Offer_details.Offer_image FROM Offer_details WHERE (Offer_date <=@today) AND (Offer_Expire >=@today)
5.如果您仍然看到问题,请执行以下步骤6,7
6。SELECT Offer_details.Offer_image FROM Offer_details WHERE (Offer_date <='10/06/2016') AND (Offer_Expire >= '10/06/2016')
7.从SSMS运行此命令并查看是否能够检索数据,如果您能够在cmd上添加监视并查看是否正在将内联sql转换为适当的SQL,如果有任何语法错误添加引号,删除它们。
答案 1 :(得分:0)
尝试从查询'@today'中删除引号(') - &gt; @today我希望这能帮到你。