首页 > 解决方案 > 如何使用 PostgreSQL 作为数据库和 vb.net windows 窗体在 DataGridView1 中发布数据

问题描述

我是 vb.net 的新手,我希望你们能帮我解决这个问题,我遇到了这个错误“发生错误:42601:在“LIKE”处或附近出现语法错误。我的代码中是否遗漏了什么?为什么我会得到这个错误?我只想在我的 DataGridView1 中显示我的记录数据

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        LoadData()
    End Sub

Private Sub LoadData(Optional keyword As String = "")
        SQL = "SELECT id, dateSubmitted, lastname, firstname, middleInitial, bodyTemperature, employee_number, address, email, inputdate, inputBy, modifyDate, modifyBy, status, fmCustomerID_id, fmCustomerLocationID_id, fmCustomerSectionID_id, contact_number
    FROM TracingApp_fmcustomeremployeesupplier" & "WHERE CONCAT(lastname, firstname) LIKE @keyword::varchar OR TRIM (middleInitial) LIKE @keyword::varchar ORDER BY id ASC"

        Dim strKeyword As String = String.Format("%(0)%", keyword)

        Cmd = New NpgsqlCommand(SQL, Con)
        Cmd.Parameters.Clear()
        Cmd.Parameters.AddWithValue("keyword", strKeyword)

        Dim dt As DataTable = PerformCRUD(Cmd)
        If dt.Rows.Count > 0 Then
            intRow = Convert.ToInt32(dt.Rows.Count.ToString())
        Else
            intRow = 0
        End If

        StatusStrip1.Text = "Number of Entry(s): " & intRow.ToString()
        With DataGridView1
            .MultiSelect = False
            .SelectionMode = DataGridViewSelectionMode.FullRowSelect
            .AutoGenerateColumns = True
            .DataSource = dt

            .Columns(0).HeaderText = "ID"
            .Columns(1).HeaderText = "dateSubmitted"
            .Columns(2).HeaderText = "lastname"
            .Columns(3).HeaderText = "firstname"
            .Columns(4).HeaderText = "middleInitial"
            .Columns(5).HeaderText = "bodyTemperature"
            .Columns(6).HeaderText = "employee_number"
            .Columns(7).HeaderText = "address"
            .Columns(8).HeaderText = "email"
            .Columns(9).HeaderText = "inputdate"
            .Columns(10).HeaderText = "inputBy"
            .Columns(11).HeaderText = "modifyDate"
            .Columns(12).HeaderText = "modifyBy"
            .Columns(13).HeaderText = "status"
            .Columns(14).HeaderText = "fmCustomerID_id"
            .Columns(15).HeaderText = "fmCustomerLocationID_id"
            .Columns(16).HeaderText = "fmCustomerSectionID_id"
            .Columns(17).HeaderText = "contact_number"

            .Columns(0).Width = 20
            .Columns(1).Width = 150
            .Columns(2).Width = 150
            .Columns(3).Width = 150
            .Columns(4).Width = 150
            .Columns(5).Width = 50
            .Columns(6).Width = 150
            .Columns(7).Width = 150
            .Columns(8).Width = 150
            .Columns(9).Width = 100
            .Columns(10).Width = 100
            .Columns(11).Width = 100
            .Columns(12).Width = 100
            .Columns(13).Width = 100
            .Columns(14).Width = 100
            .Columns(15).Width = 100
            .Columns(16).Width = 100
            .Columns(17).Width = 100

        End With

    End Sub

PostgreSQL.vb(模块)

Option Explicit On
Option Strict On

Imports Npgsql
Module PostgreSQL

    Public Function GetConnectionString() As String
        Dim host As String = "Host=localhost;"
        Dim port As String = "Port=5432;"
        Dim db As String = "Database=tracer;"
        Dim user As String = "Username=****;"
        Dim pass As String = "Password=****;"
        Dim conString As String = String.Format("{0}{1}{2}{3}{4}", host, port, db, user, pass)

        Return conString

    End Function

    Public Con As New NpgsqlConnection(GetConnectionString())
    Public Cmd As NpgsqlCommand
    Public SQL As String = ""

    Public Function PerformCRUD(Com As NpgsqlCommand) As DataTable

        Dim da As NpgsqlDataAdapter
        Dim dt As New DataTable()

        Try
            da = New NpgsqlDataAdapter
            da.SelectCommand = Com
            da.Fill(dt)
            Return dt
        Catch ex As Exception
            MessageBox.Show("An error occured: " & ex.Message, "Database",
                            MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
        Return dt
    End Function


End Module

这是我的数据库

在此处输入图像描述

在此处输入图像描述

标签: vb.netpostgresql

解决方案


推荐阅读