作者melvinlee (Melvin)
看板C_Sharp
标题[问题] 关於SQL使用参数化查询,combobox.selectItem.ToString()
时间Mon Jun 7 15:36:36 2010
各位先进好:
日前碰到关於查询的问题,
我sql语法使用参数化查询,
查询条件的输入栏位有四个分别为两个textbox员编,姓名及两个combobox职称,班别
我想要做的功能是输入任何一个栏位条件查询皆可
也就是说可以输入tb1 ->查询资料 或者tb1 and tb2 ->查询 或四个栏位条件都选
(就是画面有四个栏位可以给user输入条件後查询结果,最少一个条件,最多四个)
但我下SQl目前用select * from [table] where 员编=@ID and ....group by 员编
如果用and:tb1有输入tb2没输入就没办法以tb1去查询到结果,有员编001但不会show
如果用or:则tb1输入员编001,tb2输入Melvin 会跑出两笔结果,但结果应该要无此资料
Q1:这边的sql该用甚麽观念去下比较对呢?
Adapter.SelectCommand.Parameters.(太长接下面)
Add("@Class",OleDbType.Char, 5).Value = comboBox2..SelectedItem.ToString()
另外这边想顺便问一下,查询的时候没选cb2为所以值null,
但这样在加入参数的时候就会有error表示要确认是否为null;
Q2:那这样我该怎麽加入参数呢?
我有上姿势佳找看看,
有人的回答大概是这样
1.判断是否有输入值,Yes ->把字串装入Array
2.判断array有值的位置再加入and字串及最前面的where
这样可以组合成一个查询语法
但这样的话该如何加入参数的值呢? 最後combobox的NULL问题也未解决;
查MSDN好像也没看到,
我想是自己逻辑上的问题吧= ="
各位先进能够指导一下吗T_T
先谢谢各位~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.195.36.64
1F:→ pico2k:这个状况下,你不能用参数化查询 06/07 15:58
2F:→ melvinlee:您好~那请问我该从哪边下手比较好?用後者的方法去做吗? 06/07 16:23
3F:→ melvinlee:是不是只能先判断栏位有无值後再串接字串,然後不使用 06/07 16:32
4F:→ melvinlee:参数化查询~? 06/07 16:32
5F:→ pico2k:yes 06/07 19:23