我正在尝试比较我在DD.MM.YYYY
格式的文本框中输入的日期,但我收到错误。
string txt = "select count(*) from cont where Data_deschiderii < " + Convert.ToDateTime(TextBox1.Text).ToString("DD.MM.YYYY");
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand(txt, conn);
int x = Convert.ToInt32(cmd.ExecuteScalar().ToString());
Response.Write(x);
我怎么能这样做?我在网上找不到任何东西
答案 0 :(得分:3)
最好的方法是开始使用准备好的参数化查询。它们确保正确完成比较,并防止SQL注入攻击的可能性。
您的代码将被重写为:
string txt = "select count(*) from cont where Data_deschiderii < @compareDate;";
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand(txt, conn);
cmd.Parameters.Add("@compareDate", SqlDbType.Date);
cmd.Parameters["@compareDate"].Value = TextBox1.Text;
int x = Convert.ToInt32(cmd.ExecuteScalar().ToString());
Response.Write(x);
也就是说,我假设您的数据库字段Data_deschiderii
是date
形式的数据类型。
答案 1 :(得分:0)
您需要将日期时间转换为SQL理解的内容。
var formattedDate = Convert.ToDateTime(TextBox1.Text).ToString("yyyy-MM-dd HH:mm:ss");
然后在查询中使用formattedDate
答案 2 :(得分:0)
您应该在时间跨度内转换日期时间,然后以秒为单位比较该时间跨度。在SQL中,您可以使用DateDiff函数转换它。
答案 3 :(得分:0)
试试这个。
try
{
DateTime Date1= Convert.ToDateTime(TextBox1.Text).ToString("yyyy-MM-dd HH:mm:ss");
DateTime Date2 = Convert.ToDateTime(TextBox2.Text).ToString("yyyy-MM-dd HH:mm:ss");
if (Date1 > Date2)
{
Your Code...
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}