0

我需要从我的 vb.net 应用程序运行以下脚本 & 想知道如何将数据库名称 (mynewdatabase_db) 设为参数?

基本上我需要在某些数据库上运行这个脚本,所以我需要数据库名称是动态的。

    Dim MySqlQuery2 As String = "USE mynewdatabase_db " & _
        "TRUNCATE TABLE MyTable " & _
        " " & _
        "INSERT INTO MyTable ([MyNumber], [HTTPAlias]) VALUES (0, @MyDomainAlias1) " & _
        "INSERT INTO MyTable ([MyNumber], [HTTPAlias]) VALUES (0, @MyDomainAlias2) " & _
        "INSERT INTO MyTable ([MyNumber], [HTTPAlias]) VALUES (0, @MyDomainAlias3) "

    Using cmd2 = New SqlCommand(MySqlQuery2.ToString, myConnection)
        cmd2.Parameters.AddWithValue("@MyDomainAlias1", MyDomainName)
        cmd2.Parameters.AddWithValue("@MyDomainAlias2", "www." & MyDomainName)
        cmd2.Parameters.AddWithValue("@MyDomainAlias3", MyDomainName & "." & MyTempDomainName)
        cmd2.ExecuteNonQuery()

    End Using

提前致谢 ;)

4

2 回答 2

1

有一个非常有用的类,名为SqlConnectionStringBuilder

假设您的 app.config 或 web.config 中存储了一个初始连接字符串。
然后你可以写一个这样的方法,它加载你存储的连接字符串并将
初始目录更改为作为参数传递的新目录

Public Function GetNewConnectionString(newDataName as String) as String
    Dim cnnString as String = ConfigurationManager.ConnectionStrings["YourConnName"].ConnectionString
    Dim builder As SqlConnectionStringBuilder = new SqlConnectionStringBuilder(cnnString);
    builder.InitialCatalog = newDataName
    return builder.ConnectionString
End Function

您可以更改调用此方法的连接字符串,然后执行上面的查询,删除尝试使用不同数据库的部分。

Using myConnection = new SqlConnection(GetNewConnectionString("mynewdatabase-db"))
Using cmd2 = New SqlCommand(MySqlQuery2.ToString, myConnection)     
    cmd2.Parameters.AddWithValue("@MyDomainAlias1", MyDomainName)     
    cmd2.Parameters.AddWithValue("@MyDomainAlias2", "www." & MyDomainName)     
    cmd2.Parameters.AddWithValue("@MyDomainAlias3", MyDomainName & "." & MyTempDomainName)     
    cmd2.ExecuteNonQuery()     
End Using
End Using     
于 2012-08-05T20:57:43.257 回答
1

我会把它作为你的连接字符串的一部分。这样它就不会被硬编码到您的应用程序中。

于 2012-08-05T20:32:34.223 回答