0

在我有 2Databases 的项目中,我的服务器正在使用 SQL Server 2012 Management Studio。现在我想连接到其中一个数据库并在运行时创建一个新表。但我有一个问题。

数据库不存在

但是当我检查到我的位置时。它存在并且具有相同的名称..

这是我的代码: 在此处输入图像描述

Private Sub VBcreate()
        Dim sqlcon2 As New SqlConnection(vbcon)
        MainMenu.lblStatus.Text = "Creating Virtual Book"
        sqlstr = ("USE [VIRTUALBOOK] " & _
                  "GO() " & _
                  "SET ANSI_NULLS ON" & _
       " GO() " & _
        "SET QUOTED_IDENTIFIER ON" & _
        " GO() " & _
     "CREATE TABLE [dbo].[" & tbEmail.Text & "](" & _
                      "[ID] [ntext] NULL, " & _
    "[REMARKS] [NCHAR](6) NULL " & _
") ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]")

        Try
            sqlcon2.Open()
            cmd = New SqlCommand(sqlstr, sqlcon2)
            cmd.CommandType = CommandType.Text
            cmd.ExecuteNonQuery()
            sqlcon2.Close()
            MainMenu.lblStatus.Text = "Command Saved to Server"
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            sqlcon2.Close()
        End Try

    End Sub
4

1 回答 1

0

我关注@IvanH、@Steve、@gbn。要删除GO.. 实际上首先我也遇到了错误。但后来我删除了这些USE陈述。

cmd.commandtype也删除了这些陈述。现在它运行了,我测试了 INSERT 和 SELECT 数据库表,它显示得很好。下面是我的代码。如果我的代码有任何错误的逻辑。请给我一些建议,因为我仍然是这方面的初学者。谢谢大家的时间。。

 Dim sqlcon2 As New SqlConnection(My.Settings.SqlVB)
        MainMenu.lblStatus.Text = "Creating Virtual Book"
        sqlstr2 = "CREATE TABLE [dbo].[" & tbEmail.Text & "](" & _
                      "[ID] [ntext] NULL, " & _
    "[REMARKS] [NCHAR](6) NULL " & _
") ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]"
        Try
            sqlcon2.Open()
            cmd = New SqlCommand(sqlstr2, sqlcon2)

            cmd.ExecuteNonQuery()
            sqlcon2.Close()
            MainMenu.lblStatus.Text = "Command Saved to Server"
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

我直接将连接更改为My.Settings.SqlVB. 只是可以在上面的图片中看到字符串(我的问题)

于 2013-05-13T02:55:37.453 回答