把查询中的datetimepicker去掉的话就能查询到,加进去就差不出东西,datetimepicker的属性从long到short试过了,没有用,我也设置了YYYY/MM/dd那样的语句,还是不好使,怎么回事儿急求!!!

解决方案 »

  1.   

    你把数据库里面对应的字段设置成datetime,查询类似YYYY/MM/dd就肯定能查到
      

  2.   

    我的数据库类型是smalldatetime,这个数据库不能改,没有权限,那我怎么设置代码?
      

  3.   

    将数据库里面字段的值转换成YYYY/MM/dd格式的字符串,datetimepicker的内容也转换成YYYY/MM/dd格式的字符串,再进行比较。
      

  4.   

    麻烦您再问一下,我对datetimepicker1的初始化为this.dateTimePicker1.CustomFormat = "yyyy/MM/dd";然后我运行的时候里面的时间还在,是初始化语句的问题吗?
      

  5.   

    参数化查询吧
    string sql="select * from test where time=@time";
            SqlConnection con = new SqlConnection("database=test;server=localhost;User id=sa;Password=showyu@0609");
            con.Open();
            SqlCommand cmd = new SqlCommand(sql, con);
            cmd.Parameters.Add(new SqlParameter("@time", SqlDbType.SmallDateTime));
            cmd.Parameters["@time"].Value = "2013-06-12";
            SqlDataReader sdr = cmd.ExecuteReader();
            if (sdr.Read())
            {
                Response.Write("成功!");
            }
            con.Close();假设代码上的time就是你那个datetimepicker,如此就可以查询成功
      

  6.   

    我有查询语句了,就是想把时间能查询出来,不想改动查询语句了我的意思不是说改语句,是要你按照我这样写C#代码,用参数化的方式格式化你那datetimepicker的字符串,然后查询
      

  7.   

      我对datetimepicker的初始化语句为          this.dateTimePicker1.CustomFormat = "yyyy/MM/dd";
    事件那一栏也没问题
    format 为  short  
    但是执行后datetimepicker里依然会显示2013-5-15  正常是不该有的
      

  8.   

    我有查询语句了,就是想把时间能查询出来,不想改动查询语句了我的意思不是说改语句,是要你按照我这样写C#代码,用参数化的方式格式化你那datetimepicker的字符串,然后查询ok我试试  谢了先
      

  9.   


    代码中用“dateTimePicker1.Value.ToString("yyyy/MM/dd")”来将dateTimePicker的日期改成YYYY/MM/dd格式。
    SQL语句用“convert(varchar,日期,111)”来将数据库中的日期改成YYYY/MM/dd格式。
      

  10.   

    string strSQL="select * from 表 where convert(varchar,日期,111)='" + dateTimePicker1.Value.ToString("yyyy/MM/dd") + "'"
      

  11.   

    再说一句,数据库里的smalldatetime是yyyy-MM-dd HH:mm:ss这种样式的,你格式化成这种样式的时间就能和数据库对上号,从而查出结果