2016-04-03 67 views
0

我有一些奇怪的例外。
我有两个表的Access数据库,一个名为MYSB_DB和其他EmployeeVB NET - 选择*从问题

我用下面时,我想在这上面过滤代码:

Dim ds As New DataSet 
Dim da As OleDb.OleDbDataAdapter 
Dim sql As String = String.Empty ' 
Dim pName As String = String.Empty 
Dim fName As String = String.Empty 
Dim ColpName As String = String.Empty 
Dim ColfName As String = String.Empty 
Dim ch As Integer = InStr(1, cmbEmployees.Text, " ", CompareMethod.Text) 

pName = cmbEmployees.Text.Substring(0, ch) 
fName = cmbEmployees.Text.Substring(ch, cmbEmployees.Text.Length - ch) 
ColpName = "שדה1" 
ColfName = "שדה2" 
sql = "SELECT * FROM Employee WHERE [" & ColpName & "]=" & pName & ";" 
da = New OleDb.OleDbDataAdapter(sql, Me.EmployeeTableAdapter.Connection.ConnectionString) 
da.Fill(ds, Me.MYSB_DataBaseDataSet1.Employee.TableName) 

我只在代码中的表名之间切换。
当我在MYSB_DB表中使用此代码时,代码运行良好,但是当我使用Employee表的代码时,我有一个例外。

任何想法为什么发生这种情况?

+4

以及什么是例外,什么样的调试说,这行? –

+2

请[不要](http://stackoverflow.com/q/542510/11683)做[that](http://stackoverflow.com/q/332365/11683)。这也可以解决你的问题。 – GSerg

+0

Hey Neel。 da.Fill(ds,Me.MYSB_DataBaseDataSet1.Employee.TableName)发生异常。 (我有VS希伯来语版本,所以我会尝试翻译:“没有给出一个或多个参数的值”THANKs! –

回答

0

pName是一个字符串,因此必须用引号引起来:

sql = "SELECT * FROM Employee WHERE [" & ColpName & "]='" & pName & "';" 
+0

嘿古斯塔夫,最后我这样做了,并且工作,谢谢! –

+0

虽然这解决了眼前的问题, m试着downvote促进[坏东西](http://stackoverflow.com/q/332365/11683)。 – GSerg

+0

@GSerg:我知道。但是,这里'pName'派生自一个组合框,我们可以假设问题是控制。 – Gustav