2017-09-13 74 views
0

我正嘗試在vb.net上更新我的數據庫(MySQL)中的記錄。我想根據文本框更新記錄。我正在使用循環,因爲我有多個文本框使用Ctype的數量和價格不同的名稱。 我的代碼的樣品是:使用Ctype創建對象時出錯(....)

j=58 
For i As Integer = 1 To 19 Step 1 
     Dim pricebox As TextBox = CType(Me.Controls("TextBox" + CStr(i)), TextBox) 
     Dim qtybox As TextBox = CType(Me.Controls("TextBox" + CStr(j)), TextBox) 

     sqlcommand.Parameters.AddWithValue("@id", i) 
     sqlcommand.Parameters.AddWithValue("@qty", CInt(qtybox.Text)) 
     sqlcommand.Parameters.AddWithValue("@price", CInt(pricebox.Text)) 
     j=j-1 
Next 

但是在運行時期間,它拋出:

「對象引用不設置爲一個實例」上線 "sqlcommand.Parameters.AddWithValue("@qty 「,CInt(qtybox.Text))」

任何幫助將不勝感激,謝謝。

+4

的【什麼是一個NullReferenceException,如何解決呢?(可能的複製https://stackoverflow.com/questions/4660142/what-is -a-nullreferenceexception-how-do-i-fix-it) –

+0

但我無法使用「new」爲「qtybox」創建新實例。那麼我該怎麼做呢? –

+0

這不是帖子告訴你要做的唯一事情,你知道的。你必須找出_什麼是空的,並且它的原因是空的......這裏都有解釋。 –

回答

0

這裏是我做過什麼:)

Dim pricebox = New TextBox 
Dim qtybox = New TextBox 
pricebox = CType(Me.Controls("TextBox" + CStr(i)), TextBox) 
qtybox = CType(Me.Controls("TextBox" + CStr(j)), TextBox) 
+1

看起來它不像上面顯示的那樣有任何不同的表現 – Craig

+1

那些新的東西現在沒有任何意義 –

+0

正如其他人所說的那樣:這是不正確的。正如我之前所暗示的那樣:_使用'New'並不總是答案!_你得到一個NRE的原因不是因爲'qtybox'是nul l或'qtybox.Text'。自從您重新設置這些變量後,您所做的更改不應該修復任何內容。 –