我需要从我的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
提前致谢;)
答案 0 :(得分:1)
我会把它作为连接字符串的一部分。这样,它就不会被硬编码到您的应用程序中。
答案 1 :(得分: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