【发布时间】:2020-07-18 22:28:17
【问题描述】:
我正在尝试学习 Vb.Net 并一起使用 sql,目前我在尝试将信息插入数据库时遇到了一个问题,当尝试将文本框中的信息插入 de DB 时,它总是显示相同的错误。
System.Data.SqlClient.SqlException: 'Invalid column name 'nombre'.
Invalid column name 'calle'.
Invalid column name 'colonia'.
Invalid column name 'ciudad'.
Invalid column name 'cp'.
Invalid column name 'Tel1'.
Invalid column name 'Tel2'.
Invalid column name 'RFC'.'
这是我的代码
Imports System.Data.Common
Imports System.Data.SqlClient
Public Class Agregar
Private myConn As SqlConnection
Private myCmd As SqlCommand
Private myReader As SqlDataReader
Private results As String
Private Sub Agregar_Load(sender As Object, e As EventArgs) Handles MyBase.Load
myConn = New SqlConnection("Initial Catalog=Database1;" &
"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\sergi\source\repos\AppsPadre\AppsPadre\Database1.mdf;Integrated Security=True")
myConn.Open()
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Me.Close()
Inicio.Show()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'Dim connectionString As String = "Data Source= DB\Database1;Initial Catalog=Orders;Integrated Security=True"
'Using connection As New SqlConnection(connectionString)
Dim nombre As String = txtNombre.Text
Dim calle As String = txtCalle.Text
Dim colonia As String = txtColonia.Text
Dim ciudad As String = txtCiudad.Text
Dim cp As String = txtCP.Text
Dim Tel1 As String = txtTel1.Text
Dim Tel2 As String = txtTel2.Text
Dim RFC As String = txtRFC.Text
If txtNombre.Text.Equals("") Then
MessageBox.Show("Porfavor escriba un Nombre.")
ElseIf txtCalle.Text.Equals("") Then
MessageBox.Show("Porfavor escriba una Calle.")
ElseIf txtColonia.Text.Equals("") Then
MessageBox.Show("Porfavor escriba una Colonia.")
ElseIf txtCiudad.Text.Equals("") Then
MessageBox.Show("Porfavor escriba una Ciudad.")
ElseIf txtCP.Text.Equals("") Then
MessageBox.Show("Porfavor escriba un Codigo Postal.")
ElseIf txtTel1.Text.Equals("") Then
MessageBox.Show("Porfavor escriba un Telefono.")
ElseIf txtRFC.Text.Equals("") Then
MessageBox.Show("Porfavor escriba un RFC.")
Else
/* Dim MyValues As String = String.Format("'{0}', '{1}', '{2}', {3}', '{4}', '{5}', '{6}', '{7}'", txtNombre.Text, txtCalle.Text, txtColonia.Text, txtCiudad.Text, txtCP.Text, txtTel1.Text, txtTel2.Text, txtRFC.Text)*/
Dim insertCommand As String = "INSERT INTO Remitente([nombre], [calle], [colonia], [ciudad], [cp], [tel_1], [tel_2], [rfc]) VALUES(nombre, calle, colonia, ciudad, cp, Tel1, Tel2, RFC)"
Dim cmd As New SqlCommand(insertCommand, myConn)
cmd.ExecuteNonQuery()
End If
End Sub
End Class
这是我的数据库代码/脚本:
CREATE TABLE [dbo].[Remitente] (
[Id_remitente] INT NOT NULL IDENTITY,
[nombre] VARCHAR (50) NOT NULL,
[calle] VARCHAR (100) NOT NULL,
[colonia] VARCHAR (50) NOT NULL,
[ciudad] VARCHAR (50) NOT NULL,
[cp] SMALLINT NOT NULL,
[tel_1] SMALLINT NOT NULL,
[tel_2] SMALLINT NULL,
[rfc] SMALLINT NOT NULL,
CONSTRAINT [PK_Table] PRIMARY KEY CLUSTERED ([Id_remitente] ASC)
);
我已经环顾四周,找不到解决问题的方法,我们将不胜感激。
【问题讨论】:
-
未正确提供值,SQL 无法绑定代码错误地认为它作为“值”插入的参数(与表列同名)。请参阅有关如何使用参数化查询的 SQL 教程。另外,请确保发布最少(且有效)的代码:一些重要的原因代码已被注释掉..?
-
⚠️ 这(使用字符串插值)是一种低质量的不安全方法,容易发生 SQL 注入和意外损坏。有关如何使用参数,请参阅上面提供的链接。
-
@T.S.小鲍比桌会帮你的!!
-
@user2864740 OP 问出了什么问题 :-) 我给出了解决方案。它说,“我正在学习 vb”。所以,让OP学习。一步到位。
-
@Mary Little Bobby 将获得 OP,而不是我。 OP只是学习。这不是生产问题。我们让他继续前进 - 足够好
标签: sql-server vb.net