2011-11-01 8 views
0
Dim objconn As New System.Data.SqlClient.SqlConnection(sConnStr) 
     Dim objcmd As New System.Data.SqlClient.SqlCommand(sSpName, objconn) 
     Try 

     objcmd.CommandType = CommandType.StoredProcedure 
     objcmd.Parameters.Add(prmId) 
     objconn.Open() 
     Dim myReader As SqlDataReader 
     If objconn.State = ConnectionState.Open Then 
      myReader = objcmd.ExecuteReader() 

      'myReader = objcmd.ExecuteReader() 
      If myReader.HasRows Then 
       If myReader.Read() Then 
        myFile = New File(myReader) 
       End If 
      End If 
     End If 

Can Can any one me. 위의 코드에서 잘못된 점은 무엇입니까? ExecuteReader가 예외를 던지고 있습니다. 문자열에서 GUID 로의 캐스트가 잘못되었습니다. 그러나 My Sqlparamter는 이미 캐스팅 된 고유 식별자였습니다. 어떤 아이디어?GUID를 매개 변수로 전달할 때 항상 Reader 반환 값을 반환하십시오.

CREATE PROCEDURE GetFileInfo  
@Id uniqueidentifier 
AS 
BEGIN 

SELECT Id, DI_ID, sFileName, ContentType FROM FilesUpload Where [email protected] 
+0

더 자세한 코드 스 니펫을 제공해주십시오. 적어도 매개 변수를 전달하는 방법과 저장 프로 시저 또는 SQL 명령을 전달하는 방법. AS \t 가 을 BEGIN 고유 식별자 –

+0

\t FilesUpload FROM 여기 ID를 선택 저장된 프로 시저이다 PROCEDURE GetFileInfo에게 \t DI_ID, \t sFileName, \t의 ContentType 을 \t \t @Id을 만들 여기서 식 @ ID – user993935

+0

고유 식별자입니다. – user993935

답변

1

변수 prmId의 값이 GUID가 아니거나 그럴 필요가 있습니다.

Using conn As New SqlClient.SqlConnection("YourConnectionString") 
    Using cmd As SqlClient.SqlCommand = conn.CreateCommand() 

     cmd.CommandText = "GetFileInfo" 
     cmd.Parameters.Add("@Id", SqlDbType.UniqueIdentifier) 
     cmd.Parameters("@Id").Value = New Guid(prmId) 
     conn.Open() 

     Dim myReader As SqlDataReader = cmd.ExecuteReader() 

     If myReader.Read() Then 
      myFile = New File(myReader) 
     End If 
    End Using 
End Using 
관련 문제