2014-08-28 25 views
0

我想讀取最後一個發票號碼,並將其顯示在文本框中.....'Integer'類型的值不能轉換爲'System.Data.OleDb.OleDbDataReader'。 vb.net

假設表名是「我的表」,列名是「InvoiceNumber」,它是自動編號,所以它是整數!

這是我的代碼:

 Dim query As String = "SELECT MAX(InvoiceNumber) FROM MyTable" 
     Dim cmd As New OleDb.OleDbCommand 
     Dim reading As OleDb.OleDbDataReader 

     cmd.CommandText = query 
     cmd.Connection = conn 

     reading = Convert.ToInt32(cmd.ExecuteScalar()) 

     If reading.Read Then 
      TextBox1.Text = reading.Item("InvoiceNumber").ToString 
     End If 

Erorr是 「讀數= Convert.ToInt32(cmd.ExecuteScalar())」,因爲我的值的類型爲 '整數' 不能被轉換爲「System.Data。 OleDb.OleDbDataReader」。

任何幫助......?

回答

1

變量readingOleDbDataReader,它不能用於分配一個整數,這就是錯誤的原因。但你並不需要一個DataReader無論如何,如果你使用ExecuteScalar

Dim maxNumber As Int32 = Convert.ToInt32(cmd.ExecuteScalar()) 
TextBox1.Text = maxNumber.ToString 
+0

感謝曾爲... – 2014-08-28 22:11:52

+0

暗示的MAX – Steve 2014-08-28 22:12:26

+0

@Steve的DBNull檢查:也許這將是在這一點上特殊的發現沒有數字,因爲他正在插入方法。 – 2014-08-28 22:18:56

相關問題