将databasename传递给webmatrix / razor中的SQL查询

时间:2011-11-08 21:37:50

标签: asp.net webmatrix razor

我有一个内置在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”数据库能够根据用户输入动态更新。任何帮助都会很棒。

1 个答案:

答案 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语句不需要。