【问题标题】:C# DataTable returns blank rowsC# DataTable 返回空白行
【发布时间】:2020-03-16 18:25:54
【问题描述】:

您好,我正在从一个来自会话变量的数据表中获取数据,并尝试将一些数据转储到新数据表中,但是新数据表返回空?空表示新表中存在行。即,我的gridview 返回几个空白行?不确定字符串变量发生了什么?

string date = DateTime.Now.ToShortDateString();
        if (Session["MyData"] != null)
        {
            DataTable dt = new DataTable();
            dt = (DataTable)Session["MyData"];

            DataTable newdt = new DataTable();

            newdt.Columns.Add(new DataColumn("studentName"));
            newdt.Columns.Add(new DataColumn("inter"));
            newdt.Columns.Add(new DataColumn("CO"));
            newdt.Columns.Add(new DataColumn("teacher"));
            newdt.Columns.Add(new DataColumn("date"));
            newdt.Columns.Add(new DataColumn("desc"));
            DataRow newdr;
            foreach (DataRow row in dt.Rows)
            {
                name = row["NM"].ToString();
                term = row["term"].ToString();
                Mark = row["Mark"].ToString();
                period = row["period"].ToString();
                CN = row["CN"].ToString();
                CO = row["CO"].ToString();
                PID = row["PID"].ToString();
                //ADD TO NEW TABLE
                newdr = newdt.NewRow();
                name = newdr["studentName"].ToString();
                dlInter.SelectedText = newdr["inter"].ToString();
                CO = newdr["CO"].ToString();
                teacher = newdr["teacher"].ToString();
                date = newdr["date"].ToString();
                LabelDescript.Text = newdr["desc"].ToString();
                newdt.Rows.Add();
            }

            Repeater1.DataSource = newdt;
            Repeater1.DataBind();
            GridView1.DataSource = newdt;
            GridView1.DataBind();

【问题讨论】:

    标签: asp.net asp.net-web-api c#-4.0 datatable


    【解决方案1】:

    这一行是你的问题:

    newdt.Rows.Add();
    

    这将添加一个 EMPTY 行,因为在没有 DataRow 或对象数组的情况下调用 Add() 会被解释为添加没有任何值的行。
    解决方法很简单

    newdt.Rows.Add(newdr);
    

    Add 之前的代码也是错误的,因为您正在反转等号周围的变量

    newdr["studentName"] = name;
    newdr["inter"] = dlInter.SelectedText;
    newdr["CO"] = CO;
    newdr["teacher"] = teacher
    newdr["date"] = date;
    newdr["desc"] = LabelDescript.Text;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      • 2022-01-04
      • 1970-01-01
      • 2019-04-28
      • 2018-12-23
      • 1970-01-01
      • 2017-11-20
      相关资源
      最近更新 更多