2012-06-11 3 views
0

Я хотел бы получить некоторые значения из столбца nvarchar (база данных SQL Server). Мой код выглядит следующим образом:Как получить данные nvarchar из базы данных SQL Server

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() 

Он отлично работает только в том случае, если в столбце есть числовые значения. Но в этом столбце хранятся значения переменных символов, и эти типы значений не отображаются на странице. Я не знаю, в чем причина.

Я пытался использовать getValue.ToString вместо getString, но он не работает.

Буду благодарен Вам за помощь.

+1

Вы говорите * SQL * (Structured Query Language) , но вы действительно имеете в виду ** SQL Server ** (продукт базы данных MIcrosoft) - правильно? –

+2

Также: можете ли вы рассказать нам, какие столбцы имеют 'table1' (имя и их тип данных), и показать нам, как вы пытаетесь прочитать столбец' nvarchar'? Также: вы говорите * это не сработало * - вы получили сообщение об ошибке? Если да: ** ЧТО ** точная ошибка вы получили? –

+1

@marc_s Я думаю, что это безопасно, поскольку он использует пространство имен SqlClient, но хороший момент. –

ответ

0

Попробуйте

value1 = myGSFdataReader.GetValue (4)

Или

value1 = CStr (myGSFdataReader.GetValue (4))

+0

Он дает тот же результат, что и раньше.Когда я вставляю значение столбца «555aaa» на странице aspx, значение не появляется, а когда я вставляю «555» - номер отображается. – Konza

+0

при отладке, что назначено значению1. Вы должны увидеть, правильно ли присвоено значение1, прежде чем передать его на страницу aspx – Amy