一个SQL语句的问题请指教,感激不尽!!!(C#WinForm)

xiegengxin 2004-08-15 06:21:57
我有一个字段为员工生日,它的类型为DATETIME 在WINFORM中返回的是1960-05-18 00:00:00.000,我要怎么才可以按照月份进行查询,比如查找5月份出生的员工???
还有,如果我加上别的条件,比如5月份出生的员工并且他的部门为销售部,这样的SQL语句怎么写,
如果我传过来一个DataTable到客户端它里面已经有员工生日和部门字段了,我这样写不正确,请看看,(WinForm问题)
DataView EmployeeDV = new DataView();
EmployeeDV.Table = frmMain.myDataSet.Tables[".....视图"];
EmployeeDV.RowFilter = "部门名称='"+ 部门名称字符串 + " ' AND 生日 like '_____" + 月份字符串 + "%'";
EmployeeDV.Sort = "员工编号";//定义以什么字段排序
this.DataGirdFeteDay.DataSource = EmployeeDV;
会报错!!!
后我将其改成
EmployeeDV.RowFilter = "部门名称='"+ 部门名称字符串 + " ' AND 生日 like '%" + 月份字符串 + "%'";
这样在SQL中可以使用,但有缺点,如你输入的是12月,则查出不匹配的数据,所以改为5个下划线来代表5个位,而在C#中如果写这样的语句很容易造成语法错误,因为ADO.NET不是什么SQL语句都可以运行,要根据情况而定!查找时间和查找月份也许有某些方面不同,请指教!

...全文
159 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgg06 2004-08-16
  • 打赏
  • 举报
回复
我觉得添加存储太麻烦了,不如直接将月份读出来再添加查询条件,以前我就是这样做的
先将时间转为字符串,再截取,,虽然方法笨了点,但想不出其他方法就只好如此了
葱绿天健 2004-08-16
  • 打赏
  • 举报
回复
用convert、Substring函数或Month函数都可以实现,查查帮助就OK了!
meixiaofeng 2004-08-16
  • 打赏
  • 举报
回复
自己再整理一下
Mycro 2004-08-16
  • 打赏
  • 举报
回复
写这么一大堆,谁有耐心看呀,
就不能自己整理一下,为什么,把一堆
原始的东西,拿上来,让每个看得人在整理一遍??

把问题抽象成你想问的不行么?
vzxq 2004-08-16
  • 打赏
  • 举报
回复
nod
triout 2004-08-16
  • 打赏
  • 举报
回复
这个写法只是我参照SQL写的,在C#中没有测试,所以不确定。我还没有找到另外更行有效的解决办法。

给你的另外一个解决方案是:

在数据表中增加一个字段用于存储月份,比如BirthDayMonth,然后对DataView的RowFilter修改为:

EmployeeDV.RowFilter = "部门名称='"+ 部门名称字符串 + " ' AND BirthDayMonth=" + 月份


关于增加字段并设置其内容的方法请参考:

http://dev.csdn.net/develop/article/22/22710.shtm
xiegengxin 2004-08-15
  • 打赏
  • 举报
回复
EmployeeDV.RowFilter = "部门名称='"+ 部门名称字符串 + " ' AND Month(生日)=" + 月份
这样写不行!!报的错是:
其他信息: 表达式包含未定义的函数调用 Month()。
triout 2004-08-15
  • 打赏
  • 举报
回复
查找5月份出生的员工:
select * from table where Month(Birthday)=5

5月份出生的员工并且他的部门为销售部:
select * from table where Month(Birthday)=5 And Dept='销售部'

以上是SQL的写法。

在C#中,没有测试以下语句是否可以通过:
EmployeeDV.RowFilter = "部门名称='"+ 部门名称字符串 + " ' AND Month(生日)=" + 月份字符串

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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