#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()
функции, а затем ничего в событии кнопки. Не показывать окна сообщений при открытом соединении. Пользователь мог пойти на обед, а там сидит ваше соединение. На самом деле, вероятно, истечет время ожидания, но тем временем вы зря устанавливаете соединение.