C# DataGrid。用空数据填充的项

C# DataGrid。用空数据填充的项,c#,asp.net,db2,C#,Asp.net,Db2,我试图用DB2数据库中的数据填充asp.DataGrid。我遇到的问题是数据返回为空。奇怪的是,记录本身(似乎)是从数据库加载的,当我调试代码时,DataGrid.Items.Count=数据库中的记录数 此外,在进行故障排除时,我添加了一个asp.标签,该标签最初是隐藏的,用于显示在DataGrid本身中找到的记录数,并且每次都显示正确的记录数 这是我的密码: protected void Page_Load(object sender, EventArgs e) { dta_grd

我试图用DB2数据库中的数据填充asp.DataGrid。我遇到的问题是数据返回为空。奇怪的是,记录本身(似乎)是从数据库加载的,当我调试代码时,DataGrid.Items.Count=数据库中的记录数

此外,在进行故障排除时,我添加了一个asp.标签,该标签最初是隐藏的,用于显示在DataGrid本身中找到的记录数,并且每次都显示正确的记录数

这是我的密码:

protected void Page_Load(object sender, EventArgs e)
{
    dta_grd = new DataGrid();
    dta_grd = Ex_DLL.GetData("select * from tstint/m02");
    Lbl_Dsply.Visible = true;
    if (Supp_Data.Items.Count == 0)
    {
        Lbl_Dsply.Text = "No Records Found!";
    }
    else
    {
        Lbl_Dsply.Text += dta_grd.Items.Count.ToString();
    }
}
Ex_DLL只是一个库的名称,它完成了与数据库本身的所有连接

Ex_DLL.GetData()的代码:

现在,当我使用idb2DataReader单独读取它们时,它实际上是从数据库中读取,但在从读取数据库到填充数据网格本身的转换过程中丢失了一些东西

有什么想法吗

我发现有两个问题(可能更多):

  • 您在页面执行期间实例化了
    DataGrid
    控件,但忘记将其添加到页面的控件集合中
  • 您缺少了
    Datasource
    属性和
    DataBind()
    方法
  • 在设计环境中,在页面(.aspx)上添加“占位符”控件(如占位符1)


    谢谢它起作用了!一旦网站允许,我会将此标记为答案。
    public static DataGrid GetData(string str_sql)
    {
        //EX_Global.DB2_Conn("DEV") is just an internal connection function that houses
        //the connection settings.      
        iDB2Connection db2_conn = EX_Global.DB2_Conn("DEV");
        iDB2Command db2_cmd = null;
        iDB2DataAdapter db2_adpt = null;
        DataSet dta_ds = new DataSet();
        DataGrid ret_val = new DataGrid();
        try
        {
            if (db2_conn.State != System.Data.ConnectionState.Open) { db2_conn.Open(); }
            db2_cmd = new iDB2Command(str_sql, db2_conn);
            db2_adpt = new iDB2DataAdapter(db2_cmd);
            db2_adpt.Fill(dta_ds);
            ret_val.DataSource = dta_ds;
            ret_val.DataBind();
            db2_conn.Close();
        }
        catch (Exception) { }
        return ret_val; 
    }
    
    protected void Page_Load(object sender, EventArgs e)
    {
        dta_grd = new DataGrid();
        dta_grd.DataSource = Ex_DLL.GetData("select * from tstint/m02");
        dta_grd.DataBind(); // this method populates the DataGrid from assigned datasource
        PlaceHolder1.Controls.Add(dta_grd);
    
        Lbl_Dsply.Visible = true;
        if (Supp_Data.Items.Count == 0)
        {
            Lbl_Dsply.Text = "No Records Found!";
        }
        else
        {
            Lbl_Dsply.Text += dta_grd.Items.Count.ToString();
        }
    }