将下拉列表绑定到从函数返回的数据集

本文关键字:返回 数据集 函数 下拉列表 绑定 | 更新日期: 2023-09-27 18:05:01

我编写了以下方法,将下拉列表绑定到数据集。我需要调用这个方法两次在我的项目在不同的页面。我创建了一个类,并把方法放进去我试图通过创建一个对象来访问这个方法。有困难……

 public void bind()
    {
        DataSet ds1 = new DataSet();
        SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]);
        con.Open();
        string strQuery = "SELECT CountryName + '(+' + CountryCode + ')' As CountryName,CountryCode from ACountry";
        SqlCommand cmd = new SqlCommand(strQuery, con);
        using (SqlDataAdapter da = new SqlDataAdapter(cmd))
        da.Fill(ds1, "AUser");
        ddlCountryCode.DataSource = ds1.Tables["AUser"];
        ddlCountryCode.DataTextField = "CountryCode";
        //ddlCountryCode.SelectedValue = "India(+91)";
        ddlCountryCode.DataBind();
        ddlCountryCode.SelectedIndex = ddlCountryCode.Items.IndexOf(ddlCountryCode.Items.FindByText("India(+91)"));
        con.Close();
    }

如果我在新类中编写这个完整的方法,它将无法识别其中使用的控件(下拉列表)&所以它会抛出一个错误。所以我只包含了以下部分:

  public void bindddl()
    {
        DataSet ds1 = new DataSet();
        SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]);
        con.Open();
        string strQuery = "SELECT CountryName + '(+' + CountryCode + ')' As CountryName,CountryCode from ACountry";
        SqlCommand cmd = new SqlCommand(strQuery, con);
        using (SqlDataAdapter da = new SqlDataAdapter(cmd))
        da.Fill(ds1, "AUser");
        con.Close();
    }

现在返回一个数据集,我需要将其与另一个表单(.aspx)上的下拉列表绑定。我怎么做呢?

protected void Page_Load(object sender, EventArgs e)
    {
        Bind objbind = new Bind();
        ddlCountryCode.DataSource = objbind.---->?????????;
        ddlCountryCode.DataTextField = "CountryCode";
        //ddlCountryCode.SelectedValue = "India(+91)";
        ddlCountryCode.DataBind();
        ddlCountryCode.SelectedIndex = ddlCountryCode.Items.IndexOf(ddlCountryCode.Items.FindByText("India(+91)"));
    }

还有,我还能做什么?还有更好的选择吗?

将下拉列表绑定到从函数返回的数据集

让你的函数返回DataSet然后赋值给你想要的值

 public DataSet bindddl()
    {
        DataSet ds1 = new DataSet();
        SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]);
        con.Open();
        string strQuery = "SELECT CountryName + '(+' + CountryCode + ')' As CountryName,CountryCode from ACountry";
        SqlCommand cmd = new SqlCommand(strQuery, con);
        using (SqlDataAdapter da = new SqlDataAdapter(cmd))
        da.Fill(ds1, "AUser");
        con.Close();
        return ds1;
    }

然后按如下方式分配。

Bind objbind = new Bind();
ddlCountryCode.DataSource = objbind.bindddl().Tables["AUser"];