Недопустимое пространство имен объектов

#vb.net

#vb.net

Вопрос:

Я создал таблицу в SQLServer, и идея кода состоит в том, чтобы заполнить пробел и щелкнуть Insert , и новый пользователь будет добавлен в базу данных и DataGridView, но я получил эту ошибку:

Недопустимое имя объекта «Пользователи».

Эта ошибка появляется после нажатия Insert кнопки:

 Imports System.Configuration
Imports System.Data
Imports System.Data.SqlClient

Public Class Form1
    Dim connection As New SqlConnection("Data Source=LAPTOP-DLGJAU3D;Initial Catalog=master;Integrated Security=True")

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        EmployeeListDataGridView.DataSource = GetEmployeeList()
    End Sub

    Private Function GetEmployeeList() As DataTable
        Dim dtEmployees As New DataTable
        Dim connString As String = ConfigurationManager.ConnectionStrings("dbx").ConnectionString

        Using conn As New SqlConnection(connString)
            Using cmd As New SqlCommand("SELECT * FROM dbo.EMPLOYEES", conn)
                conn.Open()
                Dim reader As SqlDataReader = cmd.ExecuteReader()
                dtEmployees.Load(reader)
            End Using
        End Using
        Return dtEmployees
    End Function

    Private Sub BTN_INSERT_Click(sender As Object, e As EventArgs) Handles BTN_INSERT.Click
        Dim command As New SqlCommand("insert into Users(Fname, Lname, age) values('" amp; TextBoxFN.Text amp; "','" amp; TextBoxLN.Text amp; "'," amp; TextBoxAGE.Text amp; ")", connection)
        connection.open()

        If command.ExecuteNonQuery() = 1 Then
            MessageBox.Show("New User Added")
        Else
            MessageBox.Show("User Not Added")
        End If
        connection.close()
    End Sub
End Class
  

Комментарии:

1. при нажатии кнопки, откуда вы connection беретесь? Он не заключен в инструкцию using… Кроме того, я повторяю, НЕ делайте ….. НЕ … делайте операторы insert таким образом… Используйте так называемый «параметризованный sql»… вы подвергаете себя проблемам с внедрением sql. если вы загуглите «недопустимое имя объекта sql server», можно попробовать довольно много вариантов.

2. Скорее всего, Users таблицы нет, вы имеете в виду dbo.EMPLOYEES таблицу? Просто предположение, поскольку вы выбираете из этой таблицы, а затем у вас есть метод insert…

3. Кроме того, проверьте строку подключения: Initial Catalog=master , скорее всего, вы не хотите там находиться…

4. Вы проделали такую отличную работу с использованием блоков и локального соединения в GetEmployeeList() функции, а затем ничего в событии кнопки. Не показывать окна сообщений при открытом соединении. Пользователь мог пойти на обед, а там сидит ваше соединение. На самом деле, вероятно, истечет время ожидания, но тем временем вы зря устанавливаете соединение.