2016-01-19 44 views
0

我有一個Northwind數據庫,當我想要更改或在文本框中輸入船名時,我的程序檢查所有已存在的名稱數據庫,如果沒有這個名字,然後給我看消息。我創建了一個只包含填充和獲取命令的船名的新表。我不知道我的代碼在哪裏出錯。TextBox值與數據庫中的值相等

Private Sub ShipNameTextBox_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ShipNameTextBox.Validating 
    For i As Integer = 0 To NorthwindDataSet.Orders1.Rows.Count - 1 
     If Not (ShipNameTextBox.Text = Convert.ToString(NorthwindDataSet.Orders1.Rows(i))) Then 
      MessageBox.Show("The boat name should be one of the list") 
      ShipNameTextBox.Focus() 
     End If 
    Next 
End Sub 
+0

Convert.ToString(NorthwindDataSet.Orders1.Rows(I).Columns(????))) - 你可以指示欄測試。如果你用調試器檢查這一行,你可以查看代碼「Convert.ToString(NorthwindDataSet.Orders1.Rows(i)))」返回一個對象類型(DataRow) – bdn02

+0

可能的重複[最簡單/最快的方法來檢查值是否存在在VB.net中的DataTable?(http://stackoverflow.com/questions/14444207/simplest-fastest-way-to-check-if-value-exists-in-datatable-in-vb-net) –

回答

0

您可以使用數據表Select()方法如下面將返回一個DataRow[](假設你的數據表中有一列名shipname

DataRow[] rows = NorthwindDataSet.Orders1.Select("shipname = " + ShipNameTextBox.Text.Trim()) 

然後,你可以檢查返回DataRow數組有任何行。如果過濾器條件不符合他們來說,這將是空

if(rows.Length > 0) 
{ 
    MessageBox.Show("The boat name should be one of the list") 
    ShipNameTextBox.Focus() 
} 
+0

而後這比較這個DataRow與我的文本框? –

+0

只需檢查返回的DataRow []是否有任何內容,然後顯示您的meesagebox。如果有幫助,請參閱編輯答案。 – Rahul

相關問題