SQL을 데이터베이스에 쿼리하여 테이블에있는 금액의 합계를 찾을 수 있지만 아무것도 반환하지 않고 모든 데이터 필드가 정확하며 쿼리를 실행하는 방법이 올바른지, 누구든지이 문제를 해결할 수 있다면 문제가 데이터 판독기의 변수에 전달된다고 생각합니다. 변수가 SQl 쿼리에서 데이터를 가져 오지 않습니다.
이
내가는 DataReader가 함께 할 수있는 뭔가 생각, 코드입니다 :System.Web.Services.Protocols.SoapException : 서버가 요청을 처리 할 수 없습니다. ---
System.Data.OleDb.OleDbException : FROM 절의 구문 오류입니다. System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult에서 System.Data.OleDb.OleDbCommand.ExecuteCommand에서 System.Data.OleDb.OleDbCommand.ExecuteCommandText (객체 & executeResult) (CommandBehavior를 에서 (tagDBPARAMS dbParams는 & executeResult 객체) 행동에 HSBC.CheckBal (INT64의 ACCOUNTNUMBER)에서 System.Data.OleDb.OleDbCommand.ExecuteReader (CommandBehavior를 동작) 에서 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal (CommandBehavior를 행동, 문자열 방법)에 & executeResult)를 객체 HSBC.CheckBalance (Int64 계좌 번호) --- 내부 예외 스택 tra의 끝 ce ---
설명 : 현재 웹 요청이 일 때 처리되지 않은 예외가 발생했습니다. 오류에 대한 정보와 코드에서 오류가 발생한 위치에 대한 정보는 에 대한 스택 추적을 검토하십시오.
예외 정보 : System.Web.Services.Protocols.SoapException : System.Web.Services.Protocols.SoapException : 서버는 프로세스 요청에 없습니다. ---> System.Data.OleDb.OleDbException : 구문 오류 FROM 절에 있습니다. System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult에서 System.Data.OleDb.OleDbCommand.ExecuteCommand에서 System.Data.OleDb.OleDbCommand.ExecuteCommandText (객체 & executeResult) (CommandBehavior를에서 (tagDBPARAMS dbParams는 & executeResult 객체) 행동, HSBC.CheckBal에서 System.Data.OleDb.OleDbCommand.ExecuteReader (CommandBehavior를 동작) 에서 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal (CommandBehavior를 행동, 문자열 방법)에서 & executeResult)을 객체 (INT64의 ACCOUNTNUMBER) HSBC.CheckBalance (Int64 계좌 번호) --- 여관 끝 예외 스택 추적 ---
이것은 호출되는 코드입니다.
'Creates a service web method
Private Function CheckBal(ByVal accountnumber As Long) As String
'Database(drivers, connections And commands)
Dim BalanceDr As OleDbDataReader
Dim BalanceConn As OleDbConnection
Dim BalanceCmd As OleDbCommand
'Database connection string
Dim Connx As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../database/HSBC.mdb") & ";"
'SQL
Dim SQL As String = "SELECT Transaction_Amount FROM Transaction WHERE Account_Number =" & accountnumber & ";"
Dim bal As String
'Open the connection to the database
BalanceConn = New OleDbConnection(Connx)
BalanceConn.Open()
BalanceCmd = New OleDbCommand(SQL, BalanceConn)
'Create a DataReader that will return information.
BalanceDr = _
BalanceCmd.ExecuteReader(CommandBehavior.CloseConnection)
If BalanceDr.Read() Then
'A row was returned
bal = BalanceDr(0)
Else
'A row was not returned
bal = "No Balance For Account Found"
End If
BalanceDr.Close()
Return SQL
End Function
End Class
데이터베이스 폴더에 쓰기 권한을 응용 프로그램이 있나요? 그것 없이는 .ldb 파일을 만들 수 없으므로 아무런 잠금도없고 액세스도없고 아무 것도 아무것도 쿼리하지 않습니다. 하지만 연결을 연 후/database 폴더를 확인하고 ldb 파일이 있는지 확인하십시오. 그렇지 않은 경우 사용 권한이 누락됩니다. 그것의 웹 경우 기억이 안나요 I_User 또는 IIS에 대한 W_User. – xQbert
데이터베이스에서 권한 읽기, 디자인 수정, 관리, 데이터 읽기, 데이터 삽입, 데이터 삽입 및 삭제 된 데이터 삭제가 있지만 관리자로서 실행 중임을 나타냅니다. 또한 데이터베이스 폴더에 ldb 파일이 없습니다. 데이터베이스 및 외부 데이터베이스에 저장하는 다른 서비스가 실행되고 있으므로 사용 권한이 있습니다. – user1134409
연결이 열릴 때 .ldb 파일이 만들어집니다. .mdb를 수동으로 열면 해당 폴더에 .ldb가 만들어집니다. 허가에 관해서는; 이것이 웹 사이트 인 경우 I_USER 또는 I_Wuser에 데이터베이스 폴더에 대한 쓰기 권한이 있어야합니다. webservice가 실행중인 계정이 무엇이든간에 폴더에 대한 쓰기 권한이 필요합니다. [예] (http://www.justskins.com/forums/web-server-permissions-for-118149.html) – xQbert