VB.NET上传SQL脚本来创建数据库和表

时间:2016-04-05 15:12:52

标签: sql database vb.net create-table

我写了一个小应用程序。在第一次运行应用程序时,我想将SQL脚本上载到本地SQL Server Express实例。

在我的开发机器上,我创建了数据库和表,并使用SSMS将脚本导出到sql文件。我可以将该文件导入SSMS并执行它,然后创建数据库。我不知道如何使用VB.NET执行相同的过程

我将sql文件作为资源添加到我的项目中,并且我已经包含了下面的前几行

USE [master]
GO
/****** Object:  Database [MyProject]    Script Date: 5/04/2016 11:30:42 PM ******/
CREATE DATABASE [MyProject]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'MyProject', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\MyProject.mdf' , SIZE = 4160KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'MyProject_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\MyProject_log.ldf' , SIZE = 1040KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
ALTER DATABASE [MyProject] SET COMPATIBILITY_LEVEL = 110
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [MyProject].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [MyProject] SET ANSI_NULL_DEFAULT OFF 
...

...
USE [MyProject]
GO
/****** Object:  Table [dbo].[SomeTable]    Script Date: 5/04/2016 11:30:42 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SomeTable](
    [Identifier] [int] IDENTITY(1,1) NOT NULL,
....

然后我使用下面的代码将SQL上传到数据库

Private Sub Create_SQL_Database()
    Dim connetionString As String = "Data Source=localhost\SQLEXPRESS;Trusted_Connection=YES"

    Dim cnn As SqlConnection = New SqlConnection(connetionString)
    Dim cmd As SqlCommand = New SqlCommand()
    Try
        cnn.Open()
        Console.Writeline("Connection Open ! Attempting to create database")
        cmd.CommandText = My.Resources.CreateDatabaseSQL
        cmd.Connection = cnn
        Try
            cmd.ExecuteNonQuery()
        Catch ex As Exception
            MessageBox.Show("Error - " & ex.Message)
        End Try

这不起作用,我在消息框中收到了很多错误 - 语法不正确“GO' ,然后是数据库' MyProject'不存在。确保正确输入名称。

我尝试删除包含GO的所有行,但仍然留下错误 - 数据库' MyProject'不存在。确保正确输入名称。

我不是这方面的专家,但在我看来GO命令会将更改提交给数据库。因为当脚本到达此行时,我已经删除了带有GO的行

USE [MyProject]

数据库不存在,因为之前的步骤尚未提交。

在VB.NET中我需要做什么才能将此文件上传到数据库并创建我的数据库和表?

感谢。

0 个答案:

没有答案