请原谅我的英语语法。
我正在编码系统,我想知道在服务器中创建数据库后是否可以建立新连接。
这是连接字符串:
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))"
答案 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的接受答案中详细描述了这种技术。