2012-06-11 2 views
0

nvarchar 열 (SQL Server 데이터베이스)에서 일부 값을 가져오고 싶습니다. 내 코드는 아래와 같습니다 :SQL Server 데이터베이스에서 nvarchar 데이터를 가져 오는 방법

Dim value1 As String 

Dim con2 As New System.Data.SqlClient.SqlConnection 
con2.ConnectionString = "data source=AAA;initial catalog=DWH;integrated security=SSPI;" 

con2.Open() 

Dim retrieveGSFdata As New System.Data.SqlClient.SqlCommand 
retrieveGSFdata.Connection = con2 
retrieveGSFdata.CommandText = "SELECT * FROM table1" 

Dim myGSFdataReader as System.Data.SqlClient.SqlDataReader 
myGSFdataReader = retrieveGSFdata.ExecuteReader() 

Dim iteratorGSF As Integer 
iteratorGSF = 0 

while(myGSFdataReader.read()) 

    Select Case iteratorGSF 
     case 0: 
     if myGSFdataReader.IsDBNull(4) 
      value1 = 0 
     else 
      value1 = myGSFdataReader.GetString(4) 
     end if 
    End Select 

    iteratorGSF = iteratorGSF + 1 

End while 

myGSFdataReader.Close() 
con2.Close() 

열에 숫자 값이있는 경우에만 올바르게 작동합니다. 그러나이 열에는 가변 문자 값이 저장되며 이러한 유형의 값은 페이지에 표시되지 않습니다. 나는 이유가 무엇인지 모른다.

getString 대신 getValue.ToString을 사용해 보았지만 작동하지 않습니다.

귀하의 도움에 감사드립니다.

+1

당신은 * 말의 SQL * (쿼리 언어를 구조화) ,하지만 ** SQL Server ** (MIcrosoft 데이터베이스 제품)를 의미합니다 - 맞습니까? –

+2

또한 :'table1'이 가진 열 (이름과 그 데이터 유형)을 알려주고'nvarchar' 열을 읽는 방법을 보여줄 수 있습니까? 또한 : 당신이 말한다 * 작동하지 않았다 * - 당신은 오류가 있었습니까? 그렇다면 : ** 정확히 ** 당신은 정확한 오류를 얻었습니까? –

+1

@marc_s 그는 SqlClient 네임 스페이스를 사용하기 때문에 가정하는 것이 안전하다고 생각하지만 좋은 지적입니다. –

답변

0

시도

값 1 = myGSFdataReader.GetValue (4)

또는

값 1 =에서는 CStr (myGSFdataReader.GetValue (4))

+0

이전과 동일한 결과를 제공합니다.aspx 페이지에서 열 값 "555aaa"를 삽입하면 값이 나타나지 않고 "555"를 삽입하면 숫자가 표시됩니다. – Konza

+0

디버깅 할 때 value1에 할당 된 내용. aspx 페이지에 전달되기 전에 value1이 올바르게 지정되어 있는지 확인해야합니다. – Amy

관련 문제