2012-06-11 121 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() 

只有在列中有數字值時才能正常工作。但在此列中存儲可變字符值,並且此類型的值不會顯示在頁面上。我不知道是什麼原因。

我試過用getValue.ToString而不是getString,但它也不起作用。

我很感謝您的幫助。

+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