首页 文章

从动态填充数据库中的Combobox

提问于
浏览
0

我正在为我的大学开展一个项目,我需要将数据库中的数据绑定到组合框中 . 我需要在组合框的“text”字段中存储roll no / enrollment no,并在组合框的“text”属性中存储学生的名字 .

我的代码是:

#region填充组合框//填充组合框 . 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

这里::

_sSQL = "select rollno, studentname from student_data"

我试过的其他代码是:

region填充组合框

//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

但问题是,组合框中没有加载任何内容....当我运行应用程序时,没有错误,但组合框中没有加载任何内容......

请帮忙......它的SOS ......

1 回答

  • 0

    我更喜欢用从数据库中检索的数据手动填充我的组合框 . 为此,我写了一个我每次都使用的类 MaskedValue .
    这是类(从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);
        }
    }
    

    要填充组合框,我编写如下代码

    foreach (DataRow dr in _DataTable.Rows)
    {
        _ComboBox.Items.Add(New MaskedValue(dr("Name").ToString(), dr("ID")));
    }
    

相关问题