Ich versuche, die Daten von MS Access in eine SQL Server-Datenbank zu kopieren. Eine der Spalten hat den Namen Fill Pressure (psi)
, der ein Problem in SQL Server verursacht. Ich erhalte den folgenden Fehler:Falsche Syntax muss Skalarvariable deklarieren
"Incorrect syntax near "Psi" must declare the scalar variable @fill.
-Code ist als unten
Dim Cmd As New SqlClient.SqlCommand
Cmd.Connection = sqlConnection
For Each dc As DataColumn In AccessTable.Columns
colquery = colquery + "[" + dc.ColumnName + "],"
valquery = valquery + "@" + dc.ColumnName + ","
Cmd.Parameters.AddWithValue("@" + dc.ColumnName, dr(dc.ColumnName))
Next
colquery = colquery.Substring(1, colquery.Length - 1)
valquery = valquery.Substring(1, valquery.Length - 1)
colquery = colquery + ")"
valquery = valquery + ")"
Sqlquery = colquery + valquery
Sqlquery = Replace(Sqlquery, ",)", ")")
Cmd.Connection = sqlConnection
Cmd.CommandType = CommandType.Text
Cmd.CommandText = Sqlquery
Dim sqlcommand1 As SqlClient.SqlCommand = New SqlClient.SqlCommand("SET IDENTITY_INSERT [" + TableName + "] ON", sqlConnection)
sqlcommand1.ExecuteNonQuery()
Cmd.ExecuteNonQuery()
Dim sqlcommand2 As SqlClient.SqlCommand = New SqlClient.SqlCommand("SET IDENTITY_INSERT [" + TableName + "] OFF", sqlConnection)
sqlcommand2.ExecuteNonQuery()
Die Probe der Insert-Anweisung aus der Uhr. Ich habe bereits versucht, das Leerzeichen und "(" und ")" durch eine leere Zeichenfolge zu ersetzen, aber es funktioniert nicht.
"INSERT INTO [dbo].[tblVesselTypes] ([VesselType_ID], [Manufacturer],[Model], [Fill Pressure (psi)], [Empty Weight (lbs)], [Full Weight (lbs)], [Liq Liters], [Type], [Size])
VALUES (@VesselType_ID, @Manufacturer, @Model, @Fill Pressure (psi), @Empty Weight (lbs), @Full Weight (lbs), @Liq Liters, @Type, @Size)"
Das Problem ist die Variable '@Fill Druck (psi)' und '@Empty Gewicht (lbs) 'enthält Leerzeichen und Klammern. Versuchen Sie, sie auszubrechen, wenn Sie sie deklarieren/setup 'valquery' – JiggsJedi
Ich habe es bereits versucht und hat nicht geholfen. Die Abfrage lautet wie folgt INSERT INTO [dbo]. [TblVesselTypes] ([VesselType_ID], [Hersteller], [Modell], [Fülldruck (psi)], [Leergewicht (lbs)], [Full Weight (lbs)], [Liq Liter], [Typ], [Größe]) VALUES (@ VesselType_ID, @ Hersteller, @ Modell, @ FillPressurepsi, @ EmptyWeightlbs, @ FullWeightlbs, @ LiqLiters, @ Typ, @ Size) – dotnet