c#中,连接的数据库为SQL SERVER
有两个文本框,TextBox1   和TextBox2,表示起始时间
写出SQL怎么写?
数据库中的时间字段为datatime.
string sqlconn="select * from orders where orderdate between '"+TextBox1.Text+"' and '"+TextBox2.Text+"'";
提示:
System.Data.SqlClient.SqlException: 從字元 (char) 字串轉換到 datetime 的語法錯誤。不知道时间类型怎么转换,谢谢!

解决方案 »

  1.   

                string sqlconn = "select * from orders where orderdate between '" + Convert.ToDateTime(TextBox1.Text).ToShortDateString() + "' and '" + Convert.ToDateTime(TextBox2.Text).ToShortDateString() + "'";
    前提是你两个TextBox的输入格式为日期格式
      

  2.   

    TextBox1.Text或者TextBox2.Text不是正确的时间格式
      

  3.   

    你的TextBox.Text确定是合法的时间格式么?如果能确定的话,应该不会有错。DateTime startDate = DateTime.Now;
    DateTime endDate = DateTime.Now;
    if( DateTime.TryParse( TextBox1.Text.Trim() ) ){
      startDate = DateTime.Parse( TextBox1.Text.Trim();
    }if( DateTime.TryParse( TextBox2.Text.Trim() ) ){
      endDate = DateTime.Parse( TextBox2.Text.Trim();
    }
    string sqlconn="select * from orders where orderdate between '"+startDate+"' and '"+endDate+"'";
      

  4.   

    一般时间类型的输入应该用时间控件,而不是TextBox
      

  5.   

    日期字符串有问题,必须是标准的英文日期最好用参数
    SqlCommand cmd = new SqlCommand(sql, conn);
     cmd.Parameters.Add(parameter1);
     cmd.Parameters.Add(parameter2);
     cmd.ExecuteNonQuery();
      

  6.   

    System.Data.SqlClient.SqlException: 從字元 (char) 字串轉換到 datetime 的語法錯誤
    ==
    日期时间不合法
      

  7.   

    string sqlconn="select * from orders where orderdate between '"+Convert.ToDateTime(TextBox1.Text).ToString("yyyy-MM-dd")+"' and '"+Convert.ToDateTime(TextBox2.Text).ToString("yyyy-MM-dd")+"'";
    我这样写就可以了,大家还能帮忙分析一下原因呀?
      

  8.   

    必须是标准的英文日期,直接ToString()就可以了
    或者是ToString("yyyy/MM/dd HH:mm:ss")//好像是这样的
      

  9.   

    必须是标准的英文日期 直接ToString()就可以了
    不行的话就试试ToString("yyyy/MM/dd HH:mm:ss")yyyy-MM-dd //这是中文日期