如何添加文本------连接SQL Server时,在combox中选择项目-----

本文关键字:combox ----- 项目 选择 Server SQL 何添加 添加 ------连接 文本 | 更新日期: 2023-09-27 18:12:29

我有一个连接到我的数据库在我的窗口窗体应用程序的完美工作的组合框。我想知道是否有任何方式显示任何默认文本时,从SQL服务器显示数据?

例如:这是我的comboBox从数据库

检索数据
Name: item1
      item2
      item3
      item4
      item5

我想:

Name: -----Select item-----
           item1
           item2
           item3
           item4
           item5

我已经用过这个方法了

comboBox1.Select.Insert(0, "----Select Item");
comboBox.Select = 0; 

作为参考,这里是我的代码连接到mydb

// SQL Connection Configuration
try
{
    // SQL Connection
    myConn = new SqlConnection("Server = localhost; Initial Catalog= dbName; Trusted_Connection = True");
    // Open Connection
    myConn.Open();
    myComboBoxCommand = new SqlCommand("select id, name from my_table", myConn);
    myReader = myComboBoxCommand.ExecuteReader();
    DataTable dt = new DataTable();
    dt.Columns.Add("id", typeof(string));
    dt.Columns.Add("name", typeof(string));
    dt.Load(myReader);
    comboBox1.ValueMember =  "Id";
    comboBox1.DisplayMember = "Name";
      //Added This Here?
   comboBox1.Items.Insert(0, "------Select Item-------");
    comboBox1.SelectedIndex = 0;
    comboBox1.DataSource = dt;
    //Close Connection
    myConn.Close();
}

这可以工作,但是,组合框不能显示来自数据库的任何数据。什么好主意吗?我也看了这张表格,但我认为这不是我的情况。由于

如何添加文本------连接SQL Server时,在combox中选择项目-----

解决数据库数据绑定问题—您没有正确绑定ComboBox数据源…像这样重新排列你的台词……

DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(string));
dt.Columns.Add("name", typeof(string));

你的第一个--select item--问题…若要在组合框顶部添加默认项,请添加以下行。请确保在将数据源绑定到组合框后添加了下面一行。

comboBox1.Items.Insert(0, "-----Select item-----");
comboBox1.SelectedIndex = 0;

编辑:解决方案,为我工作。

SqlConnection conn = new SqlConnection("Server = .''SQLEXPRESS; Initial Catalog= Student; Trusted_Connection = True");
string query = "select Id, Name from abc1";
SqlDataAdapter da = new SqlDataAdapter();
conn.Open();
DataTable dt = new DataTable();
SqlCommand command = new SqlCommand(query, conn);
SqlDataReader reader = command.ExecuteReader();
dt.Load(reader);
DataRow Drw;
Drw = dt.NewRow();
Drw.ItemArray = new object[] { 0, "<----Select---->" };
dt.Rows.InsertAt(Drw, 0);
comboBox1.DataSource = dt;
comboBox1.ValueMember = "Id";
comboBox1.DisplayMember = "Name";

如果我没理解错的话,您是想在默认情况下在ComboBox中显示一些信息。

试题:

ComboBox1.Items.Add("Select Item");

它将把它添加为列表中的第一项。

我认为这是想多了。设置完源后,只需将组合框的。text属性设置为"Select Items…"。当然,占位符文本实际上并没有添加到Items列表中,但它为用户实现了期望的结果,对吗?

  comboBox1.DataSource = ds.Tables["name"];
  comboBox1.Text = "--Select Item--";