C# 如何解决c对象必须实现iconvertible错误?

C# 如何解决c对象必须实现iconvertible错误?,c#,sql,asp.net,C#,Sql,Asp.net,我想用文本框在c中按时间过滤记录sql数据库基,但我得到的对象必须实现iconvertible,我不知道为什么 有人帮我解决这个错误吗 cmd.Parameters.Add(new SqlParameter("@Date1", SqlDbType.DateTime)).Value = txtstartingdate; cmd.Parameters.Add(new SqlParameter("@Date2", SqlDbType.DateTime)).Value = txtendingdate;

我想用文本框在c中按时间过滤记录sql数据库基,但我得到的对象必须实现iconvertible,我不知道为什么 有人帮我解决这个错误吗

cmd.Parameters.Add(new SqlParameter("@Date1", SqlDbType.DateTime)).Value = txtstartingdate;
cmd.Parameters.Add(new SqlParameter("@Date2", SqlDbType.DateTime)).Value = txtendingdate;
using (SqlDataReader dr = cmd.ExecuteReader())
{
        DataTable dt = new DataTable();
        dt.Load(dr);
        gdvRfids.DataSource = dt;
}
尝试将txtstartingdate和txtendingdate转换为一个值

如果您对SQL server将文本转换为日期时间感到满意,那么 照办

更新

我想我看到了问题所在。我假设txtstartingdate是一个字符串。我打赌它的文本框或其他控件。如果文本框只是.Text属性

cmd.Parameters.AddWithValue("@Date1", txtstartingdate.Text);
cmd.Parameters.AddWithValue("@Date2",  txtendingdate.Text);
using (SqlDataReader dr = cmd.ExecuteReader())
{
    DataTable dt = new DataTable();
    dt.Load(dr);
    gdvRfids.DataSource = dt;
}    

始终发布准确的错误消息,包括错误发生在哪一行的信息。错误出现在第……行。。。。。。。。。使用sqldatareader dr=cmd.executeReader很可能是因为您说这是一个日期时间,然后给它一个字符串值,而不是日期时间。你必须转换它。这是一种不好的做法,原因有两个:你不应该高兴地让服务器进行转换,并且不应该使用AddWithValue,因为有更好的方法。就像OP目前使用的一样。@SamiKuhmonen,第一点我同意,但我只是让OP的生活更轻松。第二点是有争议的。谢谢richard,但我如何才能将txtstartingdate和endingdate转换为datetime?关于一切都有争议,但如果你事先知道类型,为什么不说出来而不相信一些内部机制呢?就像在本例中一样,错误立即出现,而不是在稍后的时间,当另一台服务器的配置与测试服务器不同,并且1-2-2015被解析为1月2日时,想知道为什么会出现问题,例如,我使用这个方法,但我有相同的错误……。我不知道如何将txtstartingdate和endingdate转换为timedate。
cmd.Parameters.AddWithValue("@Date1", txtstartingdate.Text);
cmd.Parameters.AddWithValue("@Date2",  txtendingdate.Text);
using (SqlDataReader dr = cmd.ExecuteReader())
{
    DataTable dt = new DataTable();
    dt.Load(dr);
    gdvRfids.DataSource = dt;
}