“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