标题:请教关于多重查询的一个问题.
只看楼主
我是新手么
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-5-3
 问题点数:0 回复次数:8 
请教关于多重查询的一个问题.

有如下的查询条件:
olecomm.CommandText = "select * from sgfw where 姓名 like '" + TextBox1.Text + "%' and 性别='" + ComboBox1.SelectedItem.ToString + "'"

如果说两个重要条件不为空,则能查到要需要的结果,如果性别没选择,就查不到结果.



错误提示:未将对象引用设置到对象的实例

请问怎么解决这个问题?谢谢
搜索更多相关主题的帖子: 查询 
2007-05-22 22:49
wind805
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-5-21
得分:0 

性别不选,那么ComboBox1.SelectedItem.ToString="",你的表里面没有性别是""的吧。

2007-05-23 00:06
Viviwei
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:344
专家分:0
注 册:2006-4-11
得分:0 
有个and在里面,复合的查询条件当然都要满足.
你可以换个思路在程序上面动点手脚,不一定要在SQL语句上面去改动.
例如将combobox1的初始选定赋值,让用户进程序的时候就是选择的,那样就能解决问题了

爱上思考,爱上编程,爱上.net!
2007-05-23 11:16
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 
FormLoad或者Pageload的时候 先设置 ComboBox1.SelectedItem = 0

2007-05-23 11:25
我是新手么
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-5-3
得分:0 
以下是引用wind805在2007-5-23 0:06:18的发言:

性别不选,那么ComboBox1.SelectedItem.ToString="",你的表里面没有性别是""的吧。

答:
不是这介意思,我的意思是不区别男 ,女

2007-05-23 20:16
我是新手么
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-5-3
得分:0 
以下是引用Viviwei在2007-5-23 11:16:51的发言:
有个and在里面,复合的查询条件当然都要满足.
你可以换个思路在程序上面动点手脚,不一定要在SQL语句上面去改动.
例如将combobox1的初始选定赋值,让用户进程序的时候就是选择的,那样就能解决问题了

结合这位朋友的思路,加上Kendy123456的方法,结合我的实际.问题终于解决.


Public Class chaxin

Private Sub chaxin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.MdiParent = mainForm
TextBox1.Text = ""
TextBox2.Text = ""
ComboBox1.Text = ""
End Sub

谢谢各位好心的朋友

2007-05-23 20:19
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 

晕 不会吧!
定义个变量啊!
dim sql as string
sql="select * from sgfw where 1=1 "
if textbox1.text<>"" then
sql=sql & " and 姓名 like '" + TextBox1.Text + "%'
end if
if ComboBox1.text<>"" then
sql=sql & "and 性别='" + ComboBox1.SelectedItem.ToString + "'"
end if
olecomm.CommandText =sql


2007-05-24 09:43
我是新手么
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-5-3
得分:0 
以下是引用心中有剑在2007-5-24 9:43:06的发言:

晕 不会吧!
定义个变量啊!
dim sql as string
sql="select * from sgfw where 1=1 "
if textbox1.text<>"" then
sql=sql & " and 姓名 like '" + TextBox1.Text + "%'
end if
if ComboBox1.text<>"" then
sql=sql & "and 性别='" + ComboBox1.SelectedItem.ToString + "'"
end if
olecomm.CommandText =sql

谢谢你!心中有剑
我也这样想过,可是我的查询条件有60多顼,这样也能做到,可是程序的可读性就
差了.
以上是我个人的意思,我才学vb2005,有不对之处,希望大家斧正.

2007-05-24 19:03
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 

这样可读性不好?不会吧,你每个加注释啊!


2007-05-28 10:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-141652-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054825 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved