private void dateTimePicker3_CloseUp(object sender, System.EventArgs e)
{ try
{ string   tempSQL="select * from 入库单  where convert(DateTime, 入库日期 ) between '"+this.dateTimePicker2.Text.ToString().Trim()+"' and '"+this.dateTimePicker3.Text.ToString().Trim()+"'";

this.ds=link.SelectDataBase(tempSQL,sendTableName);
if(ds.Tables[0].Rows.Count!=0)
{
this.dgrd_IN.DataSource=this.ds.Tables[0];
}
else
{
MessageBox.Show("没有记录!");
this.dateTimePicker2.Text=System.DateTime.Today.ToShortDateString();
this.dateTimePicker3.Text=System.DateTime.Today.ToShortDateString();
dgrdRef();
return;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
} }提示说“从string 转换成datetime类型出现语法错误”;
建的表中”入库日期”是(char)型,我换成datetime型也不行啊。这是错在什么地方啦?昨天几们朋友给的方法我也试了,也不行,请各位再帮帮!~~

解决方案 »

  1.   

    this.dateTimePicker2.Text.ToString().Trim()
    改为
    this.dateTimePicker2.Value.ToString()
      

  2.   

    Sample code as follows:string strQuery = "select * from 库存表 where 时间 between @StartDate and @EndDate";
    SqlDataAdapter myDBAdapter = new SqlDataAdapter( strQuery, yourConn );
    myDBAdapter.SelectCommand.Parameters.Add( "@StartDate", yourStartDate );
    myDBAdapter.SelectCommand.Parameters.Add( "@EndDate", yourEndDate );
    DataSet ds = new DataSet();
    myDBAdapter.Fill( ds, "库存表" );//You can do some operation with ds
    //Caution: dispose "myDBAdapter" after use
      

  3.   

    如果你用的是dateTimePicker3,只要如下替换即可
    myDBAdapter.SelectCommand.Parameters.Add( "@StartDate", dateTimePicker3.Value);