Winforms组合框和参数化存储过程

本文关键字:存储过程 参数 组合 Winforms | 更新日期: 2023-09-27 17:50:23

在我的tblSates表中,我有一个名为Monat的列,其中包含这三个值[01.2016, 02.2016和03.2016],我想在组合框中获取这些值。

我得到了两个值,而不是三个值。

下面是我的代码:
private void FillCombobox2()
{
    string S = ConfigurationManager
    // TSQL-Statement
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    cmd.CommandText = ("SELECT DISTINCT Monat from tblSales");            
    SqlDataReader myReader;
    try
    {
        con.Open();
        myReader = cmd.ExecuteReader();
        if (myReader.Read())
        {
            DataTable dt = new DataTable();
            dt.Load(myReader);
            combobox1.DisplayMember = "Monat";
            combobox1.ValueMember = "Monat";
            combobox1.DataSource = dt;
            combobox1.SelectedIndex = -1;
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    finally
    {
        con.Close();
    }
}

Winforms组合框和参数化存储过程

我删除了reader。读一读,然后调用哪一项提高了头寸(并跳过了我的三条记录中的一条)。或者,我可以使用if (myReader.HasRows)

private void FillCombobox2()
{
    string S = ConfigurationManager
    // TSQL-Statement
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    cmd.CommandText = ("SELECT DISTINCT Monat from tblSales");            
    //SqlDataReader myReader;
    try
    {
        con.Open();
     SqlDataAdapter ad = new SqlDataAdapter(cmd);
     DataTable dt = new DataTable();
            ad.Fill(dt)             
            combobox1.DisplayMember = "Monat";
            combobox1.ValueMember = "Monat";
            combobox1.DataSource = dt;
            combobox1.SelectedIndex = -1;
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    finally
    {
        con.Close();
    }
}