Как загрузить данные в combobox из базы данных

Как загрузить данные в combobox из базы данных? Я хочу отобразить supportID в поле со списком в форме. код, который я использую, здесь. Я вызываю BindData() в formload. Я получаю исключение как: Не могу привязываться к новому элементу отображения. Имя параметра: newDisplayMember. код, который я использовал:

public void BindData()
 {
 SqlConnection con = new SqlConnection(@"server=RSTT2; database = Project ; User Id=sa; Password=PeaTeaCee5#");
 con.Open();
 string strCmd = "select supportID from Support";
 SqlCommand cmd = new SqlCommand(strCmd, con);
 SqlDataAdapter da = new SqlDataAdapter(strCmd, con);
 DataSet ds = new DataSet();
 da.Fill(ds);
 cbSupportID.DataSource = ds;
 cbSupportID.DisplayMember = "supportID";
 cbSupportID.ValueMember = "supportID";
 cbSupportID.Enabled = true;
 cmd.ExecuteNonQuery();
 con.Close();
 }
5 ответов

В этом случае DataSource для вашего combobox должен быть DataTable, попробуйте следующее:

cbSupportID.DataSource = ds.Tables[0];

Или лучше, вы должны заполнить данные в DataTable вместо DataSet следующим образом:

DataTable dt = new DataTable();
da.Fill(dt);
//...
cbSupportID.DataSource = dt;


public void BindData()
{
 SqlConnection con = new SqlConnection(@"server=RSTT2; database = Project ; User Id=sa; Password=PeaTeaCee5#");
 con.Open();
 string strCmd = "select supportID from Support";
 SqlCommand cmd = new SqlCommand(strCmd, con);
 SqlDataAdapter da = new SqlDataAdapter(strCmd, con);
 DataSet ds = new DataSet();
 da.Fill(ds);
 cmd.ExecuteNonQuery();
 con.Close();
 cbSupportID.DisplayMember = "supportID";
 cbSupportID.ValueMember = "supportID"; 
 cbSupportID.DataSource = ds;
 cbSupportID.Enabled = true;
}

Надеюсь, это поможет.


Упоминайте имя столбца в DataField, которое вы хотите загрузить.

а в aspx.cs при загрузке страницы свяжите gridview.

enter code here


Следуйте следующему примеру:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace ComboBoxData
{
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }
 private void Form1_Load(object sender, EventArgs e)
 {
 string conStr = @"Server =.\SQLEXPRESS2014; Database=NORTHWND; User Id=sa; Password=******";
 SqlConnection conn = new SqlConnection(conStr);
 DataSet ds = new DataSet();
 string getEmpSQL = "SELECT E.LastName FROM dbo.Employees E;";
 SqlDataAdapter sda = new SqlDataAdapter(getEmpSQL, conn);
 try
 {
 conn.Open();
 sda.Fill(ds);
 }catch(SqlException se)
 {
 MessageBox.Show("An error occured while connecting to database" + se.ToString());
 }
 finally
 {
 conn.Close();
 }
 comboBox1.DataSource = ds.Tables[0];
 comboBox1.DisplayMember = ds.Tables[0].Columns[0].ToString();
 }
 }
}


CmbDefaultPrinter.DisplayMember = "[table fieldname]"; 
CmbDefaultPrinter.ValueMember = "[table fieldname]"; 
CmbDefaultPrinter.DataSource = ds.Tables[0]; 
CmbDefaultPrinter.Enabled = true;

licensed under cc by-sa 3.0 with attribution.