簡體   English   中英

如何將項目從另一個類添加到組合框

[英]How to add items to combobox from another class

如何將項目添加到 Form1 中的組合框,但將項目添加到該組合框的功能在另一個類中?

public void comboBox1_Categories_Load()
{
    SqlConnection con = new SqlConnection(connection_string);

    string select_string = "SELECT * FROM dbo.Categories";
    SqlCommand cmd = new SqlCommand(select_string, con);

    SqlDataReader myReader;
    con.Open();

    myReader = cmd.ExecuteReader();

    while (myReader.Read())
    {
        comboBox1.Items.Add(myReader[1]); 
    }

    myReader.Close();
    con.Close();
}

形式:

public partial class Form1 : Form
    {
        private BusinessLayer _businessLayer ;

        public Form1()
        {
            InitializeComponent();
            _businessLayer = new BusinessLayer();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var categories = _businessLayer.GetCategories();
            comboBox1.DataSource = categories;
        }
    }

商務課程:

class BusinessLayer
{
    private DataLayer _dataLayer;

    public BusinessLayer()
    {
        _dataLayer = new DataLayer();
    }

    internal List<string> GetCategories()
    {
        return _dataLayer.RetrieveCatagories();
    }
}

數據層(您可以重構並提取到另一種方法的連接):

class DataLayer
{
    public const string ConnectionString = "my connection string";

    internal List<string> RetrieveCatagories()
    {
        List<string> items = new List<string>();

        using (SqlConnection con = new SqlConnection(ConnectionString))
        {
            string select_string = "SELECT * FROM dbo.Categories";
            SqlCommand cmd = new SqlCommand(select_string, con);

            con.Open();

            SqlDataReader myReader = cmd.ExecuteReader();

            while (myReader.Read())
            {
                items.Add(myReader[1].ToString());
            }

            myReader.Close();
        }

        return items;
    }


}

你可以這樣:

public static OtherClass()
{
    public void RetrieveData(ComboBox comboBox)
    {
        SqlConnection con = new SqlConnection(connection_string);

        string select_string = "SELECT * FROM dbo.Categories";
        SqlCommand cmd = new SqlCommand(select_string, con);

        SqlDataReader myReader;
        con.Open();

myReader = cmd.ExecuteReader();

while (myReader.Read())
{
    comboBox.Items.Add(myReader[1]); 
}

myReader.Close();
con.Close();
    }
}

//然后是你的表單所在的類

public void comboBox1_Categories_Load()
{
    OtherClass.RetrieveData(comboBox1);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM