Как загрузить данные в 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.