[VB.NET]100分求助!!!急!!!!!!!!!!!!!!!

来源:互联网 发布:js数组转字符串加逗号 编辑:程序博客网 时间:2024/05/03 08:13
VB.NET源码-156个实用实例哦……100分求助!!!急!!!!!!!!!!!!!!!
我基本不太会VB,想问些比较简单的问题
我有三个TEXT控件,程序代码中我把它们存成Text(i)数组.下面是我的读取access数据库student表的内容代码,我想根据这三个Text控件的输入来进行查询,为什么不好用呢,兄弟们帮忙看一下,急死我了啊。!!!

Private Sub Command5_Click()
Dim SQLString As String
Dim S1 As String, S As String
Dim i As Integer
For i = 0 To 2
If Text1(i) <> " " Then
Select Case i
Case 0
S1 = "student.学号 = " & " '' " & Text1(i) & " '' "
Case 1
S1 = "student.姓名 = " & " '' " & Text1(i) & " '' "
Case 2
S1 = "student.性别 = " & " '' " & Text1(i) & " '' "
End Select
If S <> " " Then
S = S & "AND " & S1
Else
S = S1
End If
End If
Next i
SQLString = " SELECT * FROM student WHERE S "
Adodc2.RecordSource = SQLString
Adodc2.Refresh
End Sub
每次我运行时都告诉我至少有一个参数没有指定值,我都快疯了,Adodc指定了connectString ,属性中RecordSource 怎么写呢?写select * from student where s 不行吧,S它认识么?所以属性中我都不知道写什么了,还有老提示我的没指定值的问提,大哥们帮帮忙啊,帮我看看我这段程序啊,求求了
__________________________________________________________________________
SQLString = " SELECT * FROM student WHERE S "
改一下再试
SQLString = " SELECT * FROM student WHERE " & S
__________________________________________________________________________
S应该等于什么的吧 应该是等于text1的内容 你可以加上= '' " & Text1(i) & " '' 试试 我也是菜鸟 又没做过 access 我做的也都不一样 不过你用的是文本框的话 应该不用写分类事件吧 我用的是combobox 下拉菜单 用了分类可以 仅供参考
__________________________________________________________________________
SQLString = " SELECT * FROM student WHERE " & S
__________________________________________________________________________
先要学会自己调试,你设置一下断点,看看最终拼接成的字符串是否正确?

另外,尽量不要用拼接的方式组织SQL语句,很容易出错
__________________________________________________________________________
Private Sub Command5_Click()
Dim SQLString As String
Dim S1 As String, S As String
Dim i As Integer
For i = 0 To 2
If Text1(i) <> " " Then
Select Case i
Case 0
S1 = "student.学号 = " & " '' " & Text1(i) & " '' "
Case 1
S1 = "student.姓名 = " & " '' " & Text1(i) & " '' "
Case 2
S1 = "student.性别 = " & " '' " & Text1(i) & " '' "
End Select
If S <> " " Then
''AND 前后给空格
S = S & " AND " & S1
Else
S = S1
End If
End If
Next i
''S是变量单独分隔出来
SQLString = " SELECT * FROM student WHERE " & S
Adodc2.RecordSource = SQLString
Adodc2.Refresh
End Sub
__________________________________________________________________________
你这边拼接有问题:
If S <> " " Then
''AND 前后给空格
S = S & " AND " & S1
Else
S = S1
End If
如果这样拼接的话,最后出来的结果是:SELECT * FROM student WHERE AND student.学号 = XX AND student.姓名 = XX AND student.性别 = XX

建议这样来写:
SQLString = " SELECT * FROM student WHERE 1=1 " & S
在前面这样写:
Select Case i
Case 0
S1 = " AND student.学号 = " & " '' " & Text1(i) & " '' "
Case 1
S1 = " AND student.姓名 = " & " '' " & Text1(i) & " '' "
Case 2
S1 = " AND student.性别 = " & " '' " & Text1(i) & " '' "
End Select
__________________________________________________________________________
建议这样来写:
SQLString = " SELECT * FROM student WHERE 1=1 " & S
在前面这样写:
Select Case i
Case 0
S1 = " AND student.学号 = " & " '' " & Text1(i) & " '' "
Case 1
S1 = " AND student.姓名 = " & " '' " & Text1(i) & " '' "
Case 2
S1 = " AND student.性别 = " & " '' " & Text1(i) & " '' "
End Select

S = S & S1
__________________________________________________________________________
大哥们,我按你们的方法都试了,还是不行呀,按你们的方法改完后不提示参数没指定了,但就是点查询按钮没任何反映,ADODC2这个控件右面属性窗口中的RcordSource写什么呢?空么?如果我也写带S的它就又提示我参数没指定值。怎么办啊,我的兄弟们。。。。。
__________________________________________________________________________
Private Sub Command5_Click()
Dim SQLString As String
Dim S1 As String, S As String
Dim i As Integer
For i = 0 To 2
If Text1(i) <> " " Then
Select Case i
Case 0
S1 = " AND student.学号 = " & " '' " & Text1(i) & " '' "
Case 1
S1 = " AND student.姓名 = " & " '' " & Text1(i) & " '' "
Case 2
S1 = " AND student.性别 = " & " '' " & Text1(i) & " '' "
End Select

S = S & S1

End If
Next i
SQLString = " SELECT * FROM student WHERE 1=1 " & S
Adodc2.RecordSource = SQLString
Adodc2.Refresh
End Sub

再试试,如果不行,把断点设在Adodc2.RecordSource = SQLString这上面,把SQLString的值拿到SQL中去查询一下。
__________________________________________________________________________
Private Sub Command5_Click()
Dim SQLString As String
Dim S1 As String, S As String
Dim i As Integer
SQLString = "SELECT * FROM student "

''请看下面的SQL写法,假设你有Text1,Text2,Text3
If Not Text1.Text = String.Empty Then
SQLString &= " Where "
SQLString &= "student.学号 = '' " & Text1.Text & " '' "
End If

If Not Text2.Text = String.Empty Then
If Not Text1.Text = String.Empty Then
SQLString &= " And "
Else
SQLString &= " Where "
End If
SQLString &= "student.姓名 = '' " & Text2.Text & " '' "
End If

If Not Text3.Text = String.Empty Then
If Not Text1.Text = String.Empty Or Not Text2.Text = String.Empty Then
SQLString &= " And "
Else
SQLString &= " Where "
End If
SQLString &= "student.性别 = '' " & Text3.Text & " '' "
End If

Adodc2.RecordSource = SQLString
Adodc2.Refresh
End Sub
__________________________________________________________________________
我看到了,按你的方法做设置断点调式时我看到的SQL语句的值是select * from student where student.学号= '' 111 ''(我输入111时查询), 这里要用trim么,还是数据类型能够不对,怎么读不出来呢?哥们你可以加我QQ么54219484,帮我帮到底吧,兄弟
__________________________________________________________________________
我这里不能用QQ。
你这样做:表student.学号的类型是什么类型?如果是int的话,不用加‘’的,直接用;如果是string的话,那就要加‘’的,还有要用trim的。
先试试
__________________________________________________________________________
都是文本类型的,没有INT型的,TRIM我应该怎么样加呢,加在哪?还有ADODC2右面面板上的RcoedSource属性我怎么设置呢,里面也要写SELECT * FROM student WHERE 1=1 & S这个么,还是写什么?
__________________________________________________________________________
DataGrid2的DataSource设为Adodc2。最后可将Adodc2的Visible设为True使之运行时可见。
我是说让你去数据库看看它的类型。
__________________________________________________________________________
Text1.Text.trim
__________________________________________________________________________
我数据库里设计的都是文本类型的,我看了。我问那个ADODC2右面属性里该咋添呢?不是DATAGRID2属性,ADODC2右面属性里有个需要添写SQL语句的地方,添什么呢
__________________________________________________________________________
在命令文本中输入:select * from  student
__________________________________________________________________________
感觉你是在做毕业设计...
__________________________________________________________________________
哥们,问题解决了,有一个控件名写错了,很感谢你对我的帮助,只恨不能给你更多的分,也感谢大家了,我记得的大家,下回我散分给大家
__________________________________________________________________________
原创粉丝点击