首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

“System.Data.DataRow.DataRow(System.Data.DataRowBuilder)”不可访问,因为它受保护级别限制解决方案

2012-03-28 
“System.Data.DataRow.DataRow(System.Data.DataRowBuilder)”不可访问,因为它受保护级别限制string conn

“System.Data.DataRow.DataRow(System.Data.DataRowBuilder)”不可访问,因为它受保护级别限制
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["cString"].ToString();
  SqlConnection cn = new SqlConnection(conn);

  cn.Open();//打开数据库连接
string sql = "select * from admin where id=@ID";
  SqlCommand cm = new SqlCommand(sql, cn);//连接数据表
  cm.Parameters.Add(new SqlParameter("@ID", 1));
  SqlDataReader sdr= cm.ExecuteReader();
  DataTable dt1 = new DataTable();
  while (sdr.Read())
  {
  DataRow dr = new DataRow();
  dr[0] = sdr[0].ToString();
  dr[1] = sdr[1].ToString();
  dr[2] = sdr[2].ToString();
  dt1.Rows.Add(dr);
  }
  this.GridView1.DataSource = dt1;
  this.GridView1.DataBind();

[解决办法]
DataRow不能直接new

应该调用DataTable的NewRow()方法创建新行。
[解决办法]
根本不需要写while循环,直接一句
dt1.Load(sdr);
就可以了。
就是用阅读器做数据源填充DataTable

热点排行