使用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。