원격지 서버로의 DB 연결을 위하여 web.config 파일을 다음과 같이 작성하였습니다.
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="false" targetFramework="4.0" />
</system.web>
<connectionStrings>
<add name="TestConnectionString" connectionString="Provider=SQLOLEDB;User ID=TEST;Password=test1234;Initial Catalog=TEST;Data Source=서버아이피;Network Library =dbmssocn"/>
</connectionStrings>
</configuration>
DB 연결 부분은 다음과 같습니다.
@{
var db = Database.OpenConnectionString("TESTConnectionString");
var selectQueryString = "Select * From TestTable";
}
다음의 foreach 구문에서 에러가 납니다...ㅠㅠ
@foreach (var row in db.Query(selectQueryString)) {
<tr>
<td>@row.Id</td>
</tr>
}
초기화 문자열의 형식이 인덱스 0에서 시작하는 사양에 맞지 않습니다.
OpenFile 로 로컬에 생성한 sdf 를 열 경우에는 에러가 나지 않습니다.
제가 OpenConnectionString 사용한 방법이 잘못된 것인가요??
Comment 5
-
달빛
2010.08.19 17:47
-
좋은 정보 감사합니다.
-
야호
2010.08.27 17:10
저는 안되는데요. 혹시 아시는 분 있으면 좀 알려주세요.
@{
var db = Database.Open("testdbopen");
var selectQueryString = "SELECT id, name FROM user ";
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>고객리스트 </title>
</head>
<body>
<h2> Coho Winery 고객리스트 </h2>
<table border="1">
<thead>
<tr>
<th>아이디</th>
<th>이름</th>
</tr>
</thead>
<tbody>
@foreach (var row in db.Query(selectQueryString)) {
<tr>
<td>@row.id</td>
</tr>
<tr>
<td>@row.name</td>
</tr>
}
</tbody>
</table>
</body>
</html>web.config 에는
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="false" targetFramework="4.0" />
</system.web>
<connectionStrings>
<add name="testdbopen" connectionString="Server=xxx.xxx.xxx.xxx;Database=testdb;user id=testid;password=testpw;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>실행시 에러발생 됨
사용자 ''이(가) 로그인하지 못했습니다. 이 사용자는 트러스트된 SQL Server 연결과 관련되어 있지 않습니다. '/' 응용 프로그램에 서버 오류가 있습니다.
사용자 ''이(가) 로그인하지 못했습니다. 이 사용자는 트러스트된 SQL Server 연결과 관련되어 있지 않습니다.
설명: 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 스택 추적을 검토하여 발생한 오류 및 코드에서 오류가 발생한 위치에 대한 자세한 정보를 확인하십시오.
예외 정보: System.Data.SqlClient.SqlException: 사용자 ''이(가) 로그인하지 못했습니다. 이 사용자는 트러스트된 SQL Server 연결과 관련되어 있지 않습니다.
소스 오류:
줄 23: </thead>
줄 24: <tbody>
줄 25: @foreach (var row in db.Query(selectQueryString)) {
줄 26: <tr>
줄 27: <td>@row.l_name</td> -
달빛
2010.09.03 17:11
Integrated Security=True 를 Integrated Security=False 로 하셔야 합니다.
Integrated Security=True 는 현재 사용중인 윈도우계정으로 열겠다는겁니다.
-
한표 추가요.


다음과 같이 해결했습니다...
1. web.config 의 connectionString을 이용할 경우 Database.OpenConnectionString 이 아니라 Database.Open 메소드를 사용하여야 합니다...
참조 : http://cytanium.com/forums/yaf_postsm18_Connection-string-problem.aspx
2. web.config 를 다음과 같이 수정하였습니다.
<connectionStrings>
<add name="TestConnectionString" connectionString="Server=서버아이피;Database=TEST;Integrated Security=True;" providerName="System.Data.SqlClient"/>
</connectionStrings>