在服务器

时间:2017-03-13 14:13:41

标签: sql-server database vb.net

请原谅我的英语语法。

我正在编码系统,我想知道在服务器中创建数据库后是否可以建立新连接。

这是连接字符串:

Dim DBCon As SqlConnection = New SQLConnection("Data Source=(localdb)\DbLocal;Integrated Security=True")

如果我想创建一个数据库,我使用一个命令 - 数据库名称在文本框后面,它就像:

Dim dbName As String = txtdbName.Text
myCommand = "CREATE database " & dbName

创建数据库,但在我启动创建表的查询后 - 表不会保存在创建的数据库中。因此,凭借我在VB.Net和MSSQL中的初学者技能,我推断出这是因为我的连接字符串,所以我试着弄乱它:

Dim myConnectionString As SqlConnection = New SqlConnection("Data Source=(localdb)\DbLocal;Database=" & dbName & ";Integrated Security=True;Pooling=False")

我在创建表查询之前编写了上面的代码,但是在运行之后,我在查询中创建的表没有进入数据库。我想知道是否有'正确'的方法来做到这一点。我尝试混合我在网上找到的不同代码,但它们会产生相同的结果。

编辑:我的创建表查询:

myCommand = "CREATE TABLE tblPerson (PersonID int, LastName varchar(300), FirstName varchar(300), Address varchar(300), City varchar(300))"

1 个答案:

答案 0 :(得分:2)

我这样做的方法是在CREATE TABLE之前添加一个USE语句。所以CREATE TABLE命令看起来像这样:

public class CustomNumber<T> extends java.lang.Number {

    java.lang.Number value;

    public CustomNumber(java.lang.Number value) {
        this.value = value;
    }

    public static CustomNumber<Double> division(Number a, Number b) {
        return new CustomNumber<>(a.doubleValue() / b.doubleValue());
    }
}

编辑:正如评论中所指出的,GO分隔符不能在.NET SQL命令中使用。

相反,可以使用三部分命名来指定数据库,如下所示:

"USE  " & dbName & ";
GO

CREATE TABLE ..."

或者使用允许使用GO分隔符的SMO。在this question的接受答案中详细描述了这种技术。