无法在同一.aspx.cs页面上使用两个数据集

时间:2014-06-05 11:00:46

标签: c# asp.net ado.net

我在这个页面上使用了两个数据集1.DsCountry(在BindCountry()中)和2.DsState(在BindState()中)但数据库中的数据只在DsCountry中填充,而不是在DsState中,但是当BindCountry()是评论DsState正在运作。

public void BindCountry()
{
    objCountry.SortOn = Convert.ToString(ViewState["SortOn"]);
    objCountry.SortBy = Convert.ToString(ViewState["SortBy"]);
    DataSet DsCountry = objCountry.GetAllCountryDetails();
    ddlCntry.DataSource = DsCountry.Tables[0];
    ddlCntry.DataValueField = "CountryId";
    ddlCntry.DataTextField = "CountryName";
    ddlCntry.DataBind();
}

public void BindState()
{
    objState.CountryId = int.Parse(ddlCntry.SelectedItem.Value);
    objState.StateName = txtState.Text.Trim();
    objState.SortOn = ViewState["SortOnState"].ToString();
    objState.SortBy = ViewState["SortByState"].ToString();
    DataSet DsState = objState.getStates();
    gvState.DataSource = DsState;
    gvState.DataBind();

}

2 个答案:

答案 0 :(得分:0)

在这里:

public void BindState()
{
    objState.CountryId = int.Parse(ddlCntry.SelectedItem.Value);
    objState.StateName = txtState.Text.Trim();
    objState.SortOn = ViewState["SortOnState"].ToString();
    objState.SortBy = ViewState["SortByState"].ToString();
    DataSet DsState = objState.getStates();
    gvState.DataSource = DsState;
    gvState.DataBind();
}

在这一行:

gvState.DataSource = DsState;

如果这是一个数据集(暗示它中有多个表),那么你需要指定一个你想要绑定的特定表,就像你的country方法一样:

ddlCntry.DataSource = DsCountry.Tables[0];

将成为这个:

gvState.DataSource = DsState.Tables[0];

假设您只返回数据集中的一个表。

否则它就像:去找我一些我不知道的东西。 :)

答案 1 :(得分:0)

你的BindState代码应该是这样的

public void BindState() {

objState.CountryId = int.Parse(ddlCntry.SelectedItem.Value);
objState.StateName = txtState.Text.Trim();
objState.SortOn = ViewState["SortOnState"].ToString();
objState.SortBy = ViewState["SortByState"].ToString();
DataSet DsState = objState.getStates();
gvState.DataSource = DsState.Tables[0];
gvState.DataBind();

}

您可以在1页中应用多个数据集。