如何使用c#中数据库中的数据集将多个值插入到组合框中

时间:2013-12-02 18:36:35

标签: c# database class combobox dataset

这是我在组合框中的多个值的代码。我有frmEntryHistory,它在combobox,bookID和combobox中的标题中输入学生ID和他/她的名字,然后是日期。 我在类库上使用方法从数据库中获取数据并将它们存储在数据集中。然后我在frmEntryHistory上调用该方法。我可以在组合框上出现ID-Tittle,但不能记录master_book表上列的名称。 请帮助我,抱歉让英语混乱。 :)

// Method Library Class
 public DataSet getBooks_ComboBox()
    {
        IDbDataAdapter adapter = null;
        DataSet ds = null;

        try
        {
            sb = new StringBuilder();
            adapter = new MySqlDataAdapter();
            comm = new MySqlCommand();
            ds = new DataSet();
            openConnection();
            comm.Connection = conn;
            sb.Append(@"select ID, ID + ' - ' + Title as Book from master_book");
            comm.CommandText = sb.ToString();
            adapter.SelectCommand = (MySqlCommand)comm;
            adapter.Fill(ds);
            closeConnection();
            return ds;
        }

        catch (Exception ex)
        {
            return null;
        }
    }

//In my form Entry History 
  private void frmEntryHistory_Load(object sender, EventArgs e)
    {
        lblTgl.Text = DateTime.Now.ToString("dd/MM/yyyy");
        Library lib = new Library();
        DataSet ds = new DataSet();
        //stored item into combobox
        try 
        {           
            ds = lib.getBooks_ComboBox();
            cmbBook.DataSource = ds.Tables[0];
            cmbBook.DisplayMember = "Book";
            cmbBook.ValueMember = "ID";
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

我想从组合框输出的是ID - 标题示例:1 - 新的asd等

1 个答案:

答案 0 :(得分:0)

填充数据表后,在将其绑定到组合框之前,可以创建要使用的新列。此示例使用pubs数据库:

DataSet1.titlesDataTable TitlesTable = new DataSet1.titlesDataTable();

titlesTableAdapter1.Fill(TitlesTable);

DataColumn DC = new DataColumn();
DC.ColumnName = "Test";
DC.DataType = typeof(string);
DC.Expression = string.Format("{0} + '-' + {1}", "title_id", "title");
TitlesTable.Columns.Add(DC);

comboBox1.DataSource = TitlesTable;
comboBox1.DisplayMember = "Test";
comboBox1.ValueMember = "title_id";