none
從ComBox上讀出資料確得到System.Data.DataRowView的問題... RRS feed

  • 問題

  • 請教各位大大:

    我Form上有一個ComBox,它的內容是從資料庫拉過來的,當我下拉選擇我要的項目之後,存到Access資料庫後,發現欄位的值不是正確的文字,而是System.Data.DataRowView....,請協助找一下可能的原因在哪裡。

    Dim dt As DataTable = db.GetTable("SELECT class FROM db")
            combox1.DataSource = dt 
            combox1.DisplayMember = "class"

    .....

    dc.Parameters.AddWithValue("class", Me.combox1.SelectedItem.ToString())

    ...........

    我另外有一個Combox2,它的值是從控制項自己編輯的,下拉選擇之後可以正常的儲存所選擇項目到資料庫,真頭痛!實在找不出原因,請幫幫忙!

    2007年3月7日 上午 05:20

解答

  • 你沒有設定 ValueMember:

    Dim dt As DataTable = db.GetTable("SELECT class FROM db")
            combox1.DataSource = dt 
            combox1.DisplayMember = "class"
            combox1.ValueMember = "class"

    2007年3月7日 上午 05:58
    版主

所有回覆

  • Me.combox1.SelectedItem.ToString()

    改為

    Me.combox1.Text即可

    2007年3月7日 上午 05:50
  • 你沒有設定 ValueMember:

    Dim dt As DataTable = db.GetTable("SELECT class FROM db")
            combox1.DataSource = dt 
            combox1.DisplayMember = "class"
            combox1.ValueMember = "class"

    2007年3月7日 上午 05:58
    版主
  • 甘溫....

    已經測試出來,先前寫ASP.NET習慣了,現在改VB.NET語法上有點怪怪的。

    2007年3月7日 上午 06:07
  • 只有設DisplayMember,可以用.Text去帶出選到的文字,

    如果有設ValueMember,則可用SelectedValue去帶回Value值

    2007年3月7日 上午 06:36