Заполнить выпадающий список из базы данных

#c# #asp.net #sql-server #ado.net #drop-down-menu

#c# #asp.net #sql-сервер #ado.net #выпадающее меню

Вопрос:

Я новичок в C # и пытаюсь заполнить выпадающий список на основе значения базы данных. Я попытался подключиться к базе данных, как показано ниже — протестировано с помощью инструкции, и там написано connected. Могу ли я предположить, что это правильно? Я на правильном пути? Кроме того, как мне затем выбрать значение из таблицы и заполнить выпадающий список полем?

 protected void Page_Load(object sender, EventArgs e)
{
    SqlConnection connection = new SqlConnection (
    "Data Source=.\SQLEXPRESS;AttachDbFilename=C:customers.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

     try
     {
         connection.Open();
         TextBox1.Text = "connected";
     }
     catch (Exception)
     {
         TextBox1.Text = " not connected";
     }
 }
  

Комментарии:

1. теперь я понял это, извините, что потратил чье-либо время 🙂

2. Вы на правильном пути. Чтобы добавить элементы в поле со списком, просто comboBox1.Items.Add(object)

3. @Ken: Можете ли вы нажать » Удалить » по этому вопросу, потому что вам не нужны ответы, поэтому он будет низкого качества без соответствующих ответов.

4. Поскольку вы жестко закодировали SQL в свой код, вы могли бы также использовать элемент управления SqlDataSource. msdn.microsoft.com/en-us/library/dz12d98w (v = VS.100).aspx

Ответ №1:

 protected void Page_Load(object sender, EventArgs e)
{
    SqlConnection connection = new SqlConnection (
    "Data Source=.\SQLEXPRESS;AttachDbFilename=C:customers.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

     try
     {
          SqlDataReader dReader;
          SqlCommand cmd = new SqlCommand();
          cmd.Connection = connection;
          cmd.CommandType = CommandType.Text;
          cmd.CommandText ="Select distinct [Name] from [Names]"  
          " order by [Name] asc";
         connection.Open();

         dReader = cmd.ExecuteReader();
         if (dReader.HasRows == true)
         {
              while (dReader.Read())
              //Names collection is a combo box.
              namesCollection.Add(dReader["Name"].ToString());

         }
         else
         {
              MessageBox.Show("Data not found");
         }
           dReader.Close()
         TextBox1.Text = "connected";
     }
     catch (Exception)
     {
         TextBox1.Text = " not connected";
     }
 }

Hope that helps................
  

Ответ №2:

Это так просто :—-

 SqlConnection con = new SqlConnection(); 
DataSet ds = new DataSet(); 
con.ConnectionString = @"Data Source=TOP7SQLEXPRESS;Initial Catalog=t1;Persist Security Info=True;User ID=Test;Password=t123";
string query = "Select * from tbl_User"; 
SqlCommand cmd = new SqlCommand(query, con); 
cmd.CommandText = query;
con.Open(); 
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
adpt.Fill(ds);
comboBox1.Items.Clear();
comboBox1.DisplayMember = "UserName";
comboBox1.ValueMember = "UserId";
comboBox1.DataSource = ds.Tables[0];

------------------------------------------------------------------------
  

Ответ №3:

             using (SqlConnection con = new SqlConnection("Data Source = NIPOON; Initial Catalog = CustomerOrders; Integrated Security = true"))
            {
                SqlCommand cmd = new SqlCommand("SELECT Name FROM Customer", con);
                con.Open();

                dropDownList.DataSource = cmd.ExecuteReader();
                dropDownList.DataTextField = "Name";
                dropDownList.DataValueField = "Name";
                dropDownList.DataBind();
            }