Populating Combobox from database dynamically
I am working on a project for my college where I need to bind data from database into the combobox. I need to store the roll no / enrollment no in the "value" field of combobox and name of the student in the "text" property of the combobox.
My code is :
#region Fill开发者_JAVA百科 Combo Box //Fill Combo Box. public static void FillCombo(ComboBox _cb, string _sSQL, string _sTable) { OleDbDataAdapter _oledbDA = new OleDbDataAdapter(_sSQL, _olbedbCN); DataTable _dtSource = new DataTable(); _oledbDA.Fill(_dtSource); _cb.DataSource = _dtSource; _cb.ValueMember = _dtSource.Columns[0].ColumnName; _cb.DisplayMember = _dtSource.Columns[1].ColumnName; }
endregion
here::
_sSQL = "select rollno, studentname from student_data"
Other code i tried was :
region Fill Combo Box
//Fill Combo Box.
public static void FillCombo(ComboBox _cb, string _sSQL, string _sTable)
{
OleDbDataAdapter _oledbDA = new OleDbDataAdapter("select rollno, studentname from student_data", _olbedbCN);
DataTable _dtSource = new DataTable();
_oledbDA.Fill(_dtSource);
_cb.DataSource=ds.Tables["StudentData"];
_cb.DisplayMember="Studentname";
_cb.ValueMember="rollno";
_cb.SelectedIndex=0; }
}
endregion
but the problem is, nothing is been loaded in the combo box.... when i run the application, no error comes, but nothing is loaded in the combobox...
Please help... its SOS...
I prefer to manually populate my comboboxes with data retrieved from the database. For this purpose, I wrote a class, MaskedValue
which I use every time.
Here's the class (converted from VB.NET)
using System;
using System.Diagnostics;
using System.ComponentModel;
/// <summary>Represents a value masking an underlying value.</summary>
[DebuggerDisplay("{ToString()}"), DebuggerStepThrough()]
public class MaskedValue : IComparable<MaskedValue>, IComparer<MaskedValue>
{
private string _value;
public string Value {
get { return _value; }
set { _value = value; }
}
private object _underlyingValue;
public object UnderlyingValue {
get { return _underlyingValue; }
set { _underlyingValue = value; }
}
/// <summary>Creates a new instance of the MaskedValue class.</summary>
public MaskedValue()
{
Value = "";
UnderlyingValue = null;
}
/// <summary>Creates a new instance of the MaskedValue class.</summary>
/// <param name="value">Value to be assigned to the MaskedValue.</param>
public MaskedValue(string value)
{
this.Value = value;
}
/// <summary>Creates a new instance of the MaskedValue class.</summary>
/// <param name="value">Value to be assigned to the MaskedValue.</param>
/// <param name="underlyingValue">Underlying value of the MaskedValue.</param>
public MaskedValue(string value, object underlyingValue)
{
this.Value = value;
this.UnderlyingValue = underlyingValue;
}
/// <summary>Gets a value that represents this MaskedValue.</summary>
public override string ToString()
{
return Value;
}
/// <summary>Compares two instances of MaskedValue.</summary>
/// <param name="x" >First MaskedValue to be compared.</param>
/// <param name="y">Second MaskedValue to be compared.</param>
/// <returns>
/// A 32-bit signed integer indicating the lexical relationship between the two comparands.
/// </returns>
[EditorBrowsable(EditorBrowsableState.Advanced)]
public int Compare(MaskedValue x, MaskedValue y)
{
return x.CompareTo(y);
}
/// <summary>Compares this MaskedValue to the other.</summary>
/// <param name="other">MaskedValue to compare this MaskedValue with.</param>
/// <returns>
/// A 32-bit signed integer indicating the lexical relationship between the two comparands.
/// </returns>
[EditorBrowsable(EditorBrowsableState.Advanced)]
public int CompareTo(MaskedValue other)
{
return this.Value.CompareTo(other.Value);
}
}
To populate a combo box, I write code like below
foreach (DataRow dr in _DataTable.Rows)
{
_ComboBox.Items.Add(New MaskedValue(dr("Name").ToString(), dr("ID")));
}
精彩评论