我有一个内置在webmatrix中的表单,它将更新用户指定数据库中的数据。
我希望用户将其数据库名称插入到表单中,并根据用户提交的内容打开Database.Open("SQLServerConnectionString");
。
如果不可能,有没有办法在webmatrix下面的SQL查询中简单地包含用户指定的DB名称?我在下面的示例:
var db = Database.Open("SQLServerConnectionString");
var selectQueryString = "SELECT donor_id,first_name,last_name FROM SUPPORT.dpo.dp WHERE donor_id=@0";
我希望FROM子句中的静态“SUPPORT”数据库能够根据用户输入动态更新。任何帮助都会很棒。
答案 0 :(得分:5)
您使用的是.mdf文件还是实际的数据库连接字符串?如果是连接字符串,则可以使用OpenConnectionString
方法并传递自定义连接字符串,而不是使用web.config中的whats。
http://msdn.microsoft.com/en-us/library/gg569301(v=VS.99).aspx
这样的事可能有用:
@{
var databaseName = Request["databaseName"]; //load from request
var connectionString = string.Format("Data Source=.\\SQLExpress;Initial Catalog={0};Integrated Security=True", databaseName);
var providerName = "System.Data.SqlClient";
var db = Database.OpenConnectionString(connectionString, providerName);
var selectQueryString = "SELECT * FROM Product ORDER BY Name";
}
您可以删除 SUPPORT。前缀,因为select
语句不需要。