c#中sql语法异常
c#中sql语法错误
查询起始时间跟结束时间之间的记录 这样写 老报错
------解决思路----------------------
str += string.Format(" and CreatTime > = CONVERT(varchar(20),CreatTime,120) like '" + starttime.Value + "%' 'and CompleteTime < = CONVERT(varchar(20),CompleteTime,120) like'" + endtime.Value + "%''");//这句语法有问题
------解决思路----------------------
CreatTime > = CONVERT(varchar(20),CreatTime,120) like
除了一楼错误外,这个也是错误,又是>=又是 like,这明显是错误的SQL
------解决思路----------------------
你这代码到底是想干啥?又要>=,又要模糊匹配,完全是个自相矛盾的逻辑,而且语法也根本不对
在理清代码错误之前,你最好先理清自己的思路,把逻辑写成伪代码,先说服自己这是对的,再把它翻译成代码
------解决思路----------------------
真要在源代码的基础上小改的话,试试这样:
个人建议有DateTimePicker控件来设定查询时间,而不是TextBox,因为TextBox很难控制输入格式的。
查询起始时间跟结束时间之间的记录 这样写 老报错
string str = "select * from Record where 1=1 ";
......
if (starttime.Value != "" && endtime.Value != "")
{
str += string.Format(" CreatTime > = CONVERT(varchar(20),CreatTime,120) like '" + starttime.Value + "%' 'and CompleteTime < = CONVERT(varchar(20),CompleteTime,120) like'" + endtime.Value + "%''");//这句语法有问题
}
------解决思路----------------------
str += string.Format(" and CreatTime > = CONVERT(varchar(20),CreatTime,120) like '" + starttime.Value + "%' 'and CompleteTime < = CONVERT(varchar(20),CompleteTime,120) like'" + endtime.Value + "%''");//这句语法有问题
------解决思路----------------------
CreatTime > = CONVERT(varchar(20),CreatTime,120) like
除了一楼错误外,这个也是错误,又是>=又是 like,这明显是错误的SQL
------解决思路----------------------
你这代码到底是想干啥?又要>=,又要模糊匹配,完全是个自相矛盾的逻辑,而且语法也根本不对
在理清代码错误之前,你最好先理清自己的思路,把逻辑写成伪代码,先说服自己这是对的,再把它翻译成代码
------解决思路----------------------
正解 逻辑出问题了 楼上贴代码了 帮忙检查下
真要在源代码的基础上小改的话,试试这样:
if (DropDownList1.SelectedValue != "")
{
str += string.Format(" and UserID='" + DropDownList1.SelectedItem.Text + "'");
}
//将ID独立开
if (starttime.Value != "" && endtime.Value == "")
{
str += string.Format(" and CONVERT(varchar(20),CreatTime,120) like '" + starttime.Value + "%'");
}
else if (endtime.Value != "" && starttime.Value==“”)
{
str += string.Format(" and CONVERT(varchar(20),CompleteTime,120) like'" + endtime.Value + "%'");
}
else if (starttime.Value != "" && endtime.Value != "")
{
str += string.Format("and CreatTime >= '" + starttime.Value + "'and CompleteTime <= '" + endtime.Value + "%'");
}
个人建议有DateTimePicker控件来设定查询时间,而不是TextBox,因为TextBox很难控制输入格式的。