如何解决"参数不正确"错误

时间:2016-10-06 16:21:24

标签: c# asp.net visual-studio-2012 sql-server-2012 connection-string

如何解决这个问题, 当我运行我的代码时,它会给出日期错误吗?

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;
    }

2 个答案:

答案 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我希望这能帮到你。