Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vbsqlaccess选择Where-Like语句_Sql_Vb.net - Fatal编程技术网

vbsqlaccess选择Where-Like语句

vbsqlaccess选择Where-Like语句,sql,vb.net,Sql,Vb.net,Net中,我试图学习如何在每次单击搜索按钮作为查询的触发事件时将查询结果显示到数据网格中。 但当我点击搜索按钮时,什么也没有发生,但给了我一条错误信息。请查看链接,获取我不理解的错误信息截图 错误: 你能给我指一下正确的路线吗,谢谢 下面是我的代码 Imports System.Data.OleDb Public Class SearchForm Dim con As New OleDbConnection Private Sub ComboBox1_SelectedIn

Net中,我试图学习如何在每次单击搜索按钮作为查询的触发事件时将查询结果显示到数据网格中。 但当我点击搜索按钮时,什么也没有发生,但给了我一条错误信息。请查看链接,获取我不理解的错误信息截图

错误:

你能给我指一下正确的路线吗,谢谢

下面是我的代码

Imports System.Data.OleDb

Public Class SearchForm
    Dim con As New OleDbConnection



    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Statd.SelectedIndexChanged

    End Sub


    Private Sub SearchButton_Click(sender As Object, e As EventArgs) Handles SearchButton.Click

        con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source= c:\Databse\Company_db.accdb"
        con.Open()


        Dim sqlQuery As String
        Dim sqlCommand As New OleDbCommand
        Dim sqlAdapter As New OleDbDataAdapter
        Dim Table As New DataTable
        Dim empNum As String
        Dim empLname As String
        Dim empDept As String
        Dim empStat As String


        empNum = eNumText.Text
        empLname = empLnameText.Text
        empDept = Deptd.Text
        empStat = Statd.Text

        sqlQuery = "SELECT * FROM tbl_empinfo WHERE LastName like '% " & empLnameText.Text & "' "

        ' MsgBox("Employee Number " + empNum + empLname + empDept + empStat) 'test statement 


        With sqlCommand
            .CommandText = sqlQuery
            .Connection = con

            With sqlAdapter
                .SelectCommand = sqlCommand
                .Fill(Table)

            End With

            For i = 0 To Table.Rows.Count - 1
                With DataGridView1
                    .Rows.Add(Table.Rows(i)("EmpID"), Table.Rows(i)("FirstName"), Table.Rows(i)("LastName"), Table.Rows(i)("Department"), Table.Rows(i)("Position"), Table.Rows(i)("Status"), Table.Rows(i)("Years"))

                End With
            Next


        End With






        con.Close()
    End Sub
私有子搜索按钮\单击发件人作为对象,e作为事件args处理搜索按钮。单击 sqlQuery=从tbl_empinfo中选择*其中LastName类似“%”+?+“%” 这与直觉相反,但在.Net中,最好每次都使用一个新的连接对象 使用con作为新的OleDbConnectionProvider=Microsoft.ACE.OLEDB.12.0;数据源=c:\database\Company\u db.accdb_ cmd作为新的OleDbCommandsqlQuery,con '在此处使用实际列类型和长度 cmd.Parameters.Add?,OleDbType.NVarChar,50.Value=empLnameText.Text 未结 DataGridView1.DataSource=cmd.ExecuteReader 终端使用 端接头 尝试将查询中的%更改为*,如下所示:

sqlQuery = "SELECT * FROM tbl_empinfo WHERE LastName like '* " & empLnameText.Text & "' "
Access未使用%作为通配符:


我在%的使用中发现了一个错误。它用于SQL Server,而不是访问SQL use*,而不是%

此代码对SQL注入攻击是脆弱的。@JoelCoehoorn有什么建议吗?这个代码没有给我任何东西,但是这个错误我必须在属性中更改一些东西吗?我试图用你的代码替换我的代码,并填充数据,但是它用一个空的数据网格向我闪现,并给我相同的错误,请让我知道我做错了什么,谢谢如果它闪现了网格,那么这个代码可能运行正常,这之后的事情导致了异常。如果网格为空,请确保您正在搜索实际存在的内容。当抛出异常时,VisualStudio突出显示哪一行?我已经消除了错误,它给了我一个空白网格。我尝试将过滤器设置为与what's int textbox完全相同,但它给了我一个空网格。可能有什么问题?这个参数错了吗?cmd.Parameters.AddLastName,OleDbType.VarChar,50.Value=empLnameText.Text-DataGridView1.DataSource=cmd.ExecuteReaderi我尝试了这段代码,用文本框中的内容精确地过滤搜索结果,它给了我一个错误,它是highliting.FillTable,我真的不知道如何将查询结果显示到数据网格中。请帮忙