“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