在webmatrix/razor中传递数据库名给SQL查询



我有一个表单内建的webmatrix,将在用户指定的数据库内更新数据。

我希望用户将他们的数据库名称插入到表单中,并根据用户提交打开Database.Open("SQLServerConnectionString");

如果不可能,是否有一种方法可以简单地将用户指定的数据库名称包含在下面的SQL查询中?下面是我的示例:

 var db = Database.Open("SQLServerConnectionString");
 var selectQueryString = "SELECT donor_id,first_name,last_name FROM SUPPORT.dpo.dp WHERE donor_id=@0";

我希望在FROM子句中的静态"支持"数据库根据用户输入动态更新。任何帮助都太好了。

您是使用。mdf文件还是实际的数据库连接字符串?如果连接字符串,您可以使用OpenConnectionString方法并传递自定义连接字符串,而不是使用web.config中的what。

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

最新更新