时间段的多条件查询,没有查询到数据

hanhonghhl 2011-05-16 03:45:27
为什么我提交日期用时间段查询,但是没有查询到数据,但是确实是有符合的数据的,就是查询不出来,求解!!高手们


protected void Button1_Click(object sender, EventArgs e)
{
string sql = "select * from v_tian_ok where 1=1";

if (txtTabh.Text != "")

sql += " and 提案編號 like N'%" + txtTabh.Text.ToString() + "%'";

if (txtTagh.Text != "")

sql += " and 提案者工號 like N'%" + txtTagh.Text.ToString() + "%'";

if (txtTjrq.Text != "" && txtTjrq2.Text != "")

sql += " and 提交日期 between N'%" + txtTjrq.Text.ToString() + "%' and N'%" + txtTjrq2.Text.ToString() + "%'";


if (txtTabm.Text != "")

sql += " and 提交部門 like N'%" + txtTabm.Text.ToString() + "%'";

if (txtTaxm.Text != "")

sql += " and 提案名稱 like N'%" + txtTaxm.Text.ToString() + "%'";
if (txtTajl.Text != "")

sql += " and 提案獎勵 like N'%" + txtTajl.Text.ToString() + "%'";

if (txtSlrq.Text !="" || txtSlrq2.Text != "")

sql += " and 受理日期 between N'%" + txtSlrq.Text.ToString() + "%' and N'%" + txtSlrq2.Text.ToString() + "%'";

SqlConnection con = new SqlConnection("Data Source=192.168.1.8;Initial Catalog=SITE;User ID=****;Password=****;");

SqlDataAdapter myApter = new SqlDataAdapter(sql, con);
DataSet myDS = new DataSet();
con.Open();
myApter.Fill(myDS);
GridView3.DataSource = myDS;
GridView3.DataBind();




//加入序号
int li_row;
int li_rowcount = GridView3.Rows.Count;
for (int i = 0; i < li_rowcount; i++)
{
li_row = i + 1;
GridView3.Rows[i].Cells[1].Text = li_row.ToString();
}
//无记录时表头也显示的一种解决方法
if (li_rowcount == 0)
{
lblbaocuo.Text = "没有找到任何记录";

}

con.Close();
}
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ny-6000 2011-05-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hanhonghhl 的回复:]
引用 2 楼 hj850126 的回复:

如果要是使用你的话,在运行时应该会报错误的,你可以试下这个
sql += " and 提交日期 between N'" + txtTjrq.Text.ToString() + "' and N'" + txtTjrq2.Text.ToString() + "'";


感谢楼上啊 !!OK了!! 把那个%删掉就可以了! 但是为什么多个 %就……
[/Quote]


你看看具体查询的sql语句,
在查询窗口运行一下就看到效果了.

完全不一样的条件了.
有%是模糊匹配,不是大小判断喽

另外,日期有专门日期比较函数 datediff(day,date1,date2)

建议查看具体使用方法采用
hanhonghhl 2011-05-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hj850126 的回复:]

如果要是使用你的话,在运行时应该会报错误的,你可以试下这个
sql += " and 提交日期 between N'" + txtTjrq.Text.ToString() + "' and N'" + txtTjrq2.Text.ToString() + "'";
[/Quote]

感谢楼上啊 !!OK了!! 把那个%删掉就可以了! 但是为什么多个 %就不行了呢?
格桑花 2011-05-16
  • 打赏
  • 举报
回复
如果要是使用你的话,在运行时应该会报错误的,你可以试下这个
sql += " and 提交日期 between N'" + txtTjrq.Text.ToString() + "' and N'" + txtTjrq2.Text.ToString() + "'";
格桑花 2011-05-16
  • 打赏
  • 举报
回复
你先看下如果没有时间条件是,查询是否正常,如果正常,改下时间查询条件 如下:
if (Convert.ToDateTime(start_time) < Convert.ToDateTime(end_time))
{
sql += " and 预警时间>='" + start_time + "' and 预警时间 <='" + end_time + "'";
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧