2015-06-14 167 views
0

我目前正在一個項目,我需要插入/搜索/添加到/從M.S accessdatatabletextboxes索引超出範圍例外vb.net

搜索是基於id並試圖將數據插入到文本框,我得到一個錯誤

指數超出範圍的異常:手機號碼」

 cn.Open() 
     comand.Connection = cn 
     comand.CommandText = "SELECT * from Address_table where [email protected]" 
     comand.Parameters.Add("@id", OleDbType.Numeric).Value = TextBox1.Text 
     Dim dr As OleDbDataReader = comand.ExecuteReader() 
     Do While dr.Read() = True 
      TextBox2.Text = dr("Name") 
      TextBox3.Text = dr("House Name") 
      TextBox4.Text = dr("City") 
      TextBox5.Text = dr("Mobile Number".ToString) 
      TextBox6.Text = dr("PinCode".ToString) 
      TextBox7.Text = dr("Email") 
     Loop 
     If dr.Read() = False Then 
      MessageBox.Show("enter a valid id") 
     End If 
     dr.Close() 
    Catch ex As Exception 
     MessageBox.Show(ex.ToString) 
    Finally 
     cn.Close() 

任何幫助表示讚賞。提前謝謝

+0

考慮到「Mobile Number」是一個字符串loteral,「Mobile Number」.ToString沒有太大意義。你確定有一個專門命名爲「移動號碼」的列 – Plutonix

+0

在'SELECT'語句中包含列,並使用括號'[]'作爲包含空格的名稱。 '選擇[手機號碼] FROM ...'。 – Fabio

+0

您不能按照您的方式執行'ToString',您可以訪問'DataRow'。例如它應該是:**'TextBox5.Text = dr(「Mobile Number」)。ToString' **另外你可能想要檢查它是否是'DBNull.Value',否則當你做'ToString'時它會失敗,因爲你不能在'DBNull.Value'上做'ToString' – Codexer

回答

1

This:

TextBox5.Text = dr("Mobile Number".ToString) 

應該是這樣的:

TextBox5.Text = dr("Mobile Number").ToString 

真的,我想到的是列名也並不完全正確。不知怎的,你可能需要逃離這個空間。