使用SqlCommand时“GO”附近的语法不正确
每次我执行以下代码时都会出现此界面:使用SqlCommand时“GO”附近的语法不正确,sql,vb.net,sqlcommand,Sql,Vb.net,Sqlcommand,每次我执行以下代码时都会出现此界面: str1 = "USE [" + database + "];" + vbCrLf + "GO" + vbCrLf + " CREATE TABLE [dbo].[ARMSet] ([Id] Int IDENTITY(1, 1) Not NULL, );" + vbCrLf + " GO" Dim myCommand1 As SqlCommand = New SqlCommand(str1, myConn)
str1 = "USE [" + database + "];" + vbCrLf +
"GO" + vbCrLf +
" CREATE TABLE [dbo].[ARMSet] ([Id] Int IDENTITY(1, 1) Not NULL,
);" + vbCrLf +
" GO"
Dim myCommand1 As SqlCommand = New SqlCommand(str1, myConn)
错误描述如下:
“GO”附近的语法不正确
GO不是Transact-SQL语句;它是sqlcmd和osql实用程序以及SQLServerManagementStudio代码编辑器识别的命令
无法使用代码选择任何数据库
必须在SQL连接函数中选择数据库。而不是强制服务器解析USE语句,然后保留命令/连接以循环发送CREATE TABLE,将两条语句分开,因为as GO不是SQL server命令 您可以在使用myConn之前调用它:
myConn.ChangeDatabase(database)
str1 = "CREATE TABLE [dbo].[ARMSet] (
[Id] Int IDENTITY(1, 1) Not NULL,
[Name] nvarchar(max) Not NULL,
[ArmNumber] Int Not NULL,
[IP] nvarchar(max) Not NULL,
[Port] Int Not NULL,
[Modbusaddress] Int Not NULL,
[Type] Int Not NULL,
[IsMaster] bit Not NULL,
[DeliveryType] Int Not NULL,
[CurretPosition] Int Not NULL,
[IsSwingArm] bit Not NULL,
[IsLoadScale] bit Not NULL,
[PresetId] Int Not NULL
);"
Dim myCommand1 As SqlCommand = New SqlCommand(str1, myConn)
事实并非如此。使用连接字符串选择数据库是很常见的,但也可以使用USE语句进行设置。@MatSnow-需要注意的是,另一个数据库必须与连接字符串位于同一个实例中…公平地说,有。最好使用using myCommand1 as SqlCommand=New SqlCommandstr1,myConn。。。如果在创建和销毁命令对象之间有多条语句,请结束使用there。