1, strdt1, dt做成字符串型的试试。 2, "select MCGS_Time,TotalNum from 工程表 where 工程表.MCSG_Time>=" + "Convert(DateTime,"+strdt1+")"
把sql中的#(井号)改成'(单引号)试试。
建议你先看看MessageBox.Show(sql);的值是否正确
我试验了一下,好像是好用的 System.DateTime ww=DateTime.Now; string sql="select * from timer where time1<#"+ww+"# and time2>#"+ww+"#"; time1,time2都是Access数据库中的日期/时间字段如果显示的是“×××至少一个参数没有被指定值×××”,请仔细查看dt1 或 dt2的值是否为空我觉得有可能是其他地方的问题,呵呵
strdt1, dt做成字符串型的试试。
2,
"select MCGS_Time,TotalNum from 工程表 where 工程表.MCSG_Time>=" +
"Convert(DateTime,"+strdt1+")"
System.DateTime ww=DateTime.Now;
string sql="select * from timer where time1<#"+ww+"# and time2>#"+ww+"#";
time1,time2都是Access数据库中的日期/时间字段如果显示的是“×××至少一个参数没有被指定值×××”,请仔细查看dt1 或 dt2的值是否为空我觉得有可能是其他地方的问题,呵呵
DateTime dt2=Convert.ToDateTime(this.dateTimePicker2.Value.ToShortDateString().Trim());
str="SELECT xh,start_time,should_sf FROM jsj_sj WHERE (start_time BETWEEN '"+dt1+"' AND '"+dt2+"')";
string sql = "select MCGS_Time,TotalNum from 工程表 where 工程表.MCSG_Time>='#" + dt1 + "#' and 工程表.MCSG_Time<='#" + dt2 +"#'";
比如有如下语句:select * from table1 where id='123';
写成字符串为: "select * from table where id= " + "'" +"123" +"'"
如果123为参数,那两边的"'"绝对不能少!
private void btnQuerry_Click(object sender, System.EventArgs e)
{
DateTime dt, dt1, dt2;
string sdt1, sdt2; //获取用户选择的日期时间值
dt1 = dtp1.Value;
dt2 = dtp2.Value;/* try
{
int rt = dt1.CompareTo(dt2);
if(rt > 0)
{
dt = dt1;
dt1 = dt2;
dt2 = dt;
}
}
catch(ArgumentException aece)
{
MessageBox.Show("输入日期格式有误,请重新输入.\r\n" + aece.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
catch(Exception aece2)
{
MessageBox.Show(aece2.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
} sdt1 = dt1.ToString();
string temp = sdt1.Substring(0, sdt1.Length - 8);
sdt1 = temp + " 00:00:01"; sdt2 = dt2.ToString(); */ //创建查询sql语句
//string sql = "select MCGS_Time,存水位 from 水位组_MCGS where 水位组_MCGS.MCSG_Time>=#" + dt1 + "# and 水位组_MCGS.MCSG_Time<=#" + dt2 +"#";
//string sql = "select MCGS_Time,存水位 from 水位组_MCGS where MCSG_Time>=#" + dt1 + "# and MCSG_Time<=#" + dt2 +"#";
//string sql = "select MCGS_Time,存水位 from 水位组_MCGS where (MCSG_Time between #" + dt1 + "# and #" + dt2 +"#)";
string sql = "select MCGS_Time,存水位 from 水位组_MCGS where (MCSG_Time>#" + dt1 + "#)";
//string sql = "select MCGS_Time,存水位 from 水位组_MCGS"; try
{
if(conn == null)
{
doDisconnect();
doConnect();
}
if(conn.State != ConnectionState.Open)
conn.Open(); OleDbCommand mycmd = new OleDbCommand(sql, conn);
OleDbDataReader mydr = mycmd.ExecuteReader(); //清除网格中的数据
dataGrid.DataSource = null; //为datagrid添加数据
DataRow datarow;
this.Cursor = Cursors.WaitCursor; while(mydr.Read())
{
datarow = table.NewRow();
//"日期/时间"
datarow[0] = mydr[0].ToString();
//"水位值"
datarow[1] = mydr[1].ToString();
table.Rows.Add(datarow);
} dataGrid.DataSource = table;
mydr.Close();
this.Cursor = Cursors.Default;
}
catch(Exception cmde)
{
this.Cursor = Cursors.Default;
MessageBox.Show(cmde.Message);
}
}
错误sql
string sql = "select MCGS_Time,存水位 from 水位组_MCGS where MCSG_Time>=#" + dt1 + "# and MCSG_Time<=#" + dt2 +"#";
正确sql
string sql = "select MCGS_Time,存水位 from 水位组_MCGS where (MCGS_Time>=#" + dt1 + "# and MCGS_Time<=#" +dt2 + "#)";
看出来了哇,就是在where后多了个()括号啊,日日日日日!!!!