2011-11-08 2 views
1

사용자 지정 데이터베이스 내에서 데이터를 업데이트 할 webmatrix에 양식이 있습니다.webmatrix/razor에서 databasename을 SQL 쿼리에 전달

사용자가 자신의 DB 이름을 양식에 삽입하고 사용자 제출을 기준으로 Database.Open("SQLServerConnectionString");을 열어 주길 바랍니다.

가능한 경우 사용자가 지정한 DB 이름을 webmatrix 아래의 SQL 쿼리에 포함시키는 방법이 있습니까? 나는 아래 무슨의 샘플 : 나는 FROM 절에서 정적 "지원"데이터베이스를 싶습니다

var db = Database.Open("SQLServerConnectionString"); 
var selectQueryString = "SELECT donor_id,first_name,last_name FROM SUPPORT.dpo.dp WHERE [email protected]"; 

업데이트 동적으로 사용자 입력을 기반으로합니다. 어떤 도움이라도 좋을 것입니다.

답변

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"; 
} 

당신은 단지 지원을 놓을 수 있습니다. select 문에는 접두어가 필요하지 않습니다.

+0

내 답변이 업데이트되었습니다. ** string.Format ** 전화 –

+0

고맙습니다. @PaulT. @ 0이 필요하다고 생각했지만 {0}은 내가 필요한 것입니다. 거기에 차이는 여전히 나에게 안개가 조금있다. – cholloway

+1

@ 0은 SQL 쿼리의 매개 변수 값에 대한 자리 표시 자입니다. {0}은 (대부분) string.Format 메서드 호출의 동적 값에 대한 자리 표시 자입니다. –