#region 将dt按照dr的样子改造,并且得到dr里面的数据
public static DataTable Convertdrtodt(SqlDataReader dr)
{
DataTable dataTable = new DataTable();//建一个新的实例
for (int i = 0; i < dr.FieldCount; i++)
{
DataColumn mydc = new DataColumn();//关键的一步
mydc.DataType = dr.GetFieldType(i);
mydc.ColumnName = dr.GetName(i);
dataTable.Columns.Add(mydc);//关键的第二步
}
while (dr.Read())
{
DataRow mydr = dataTable.NewRow();//关键的第三步
for (int i = 0; i < dr.FieldCount; i++)
{
mydr[i] = dr[i].ToString();
}
dataTable.Rows.Add(mydr);//关键的第四步
mydr = null;
}
dr.Close();
return (dataTable);//别忘了要返回datatable,否则出错
}
#endregion
这一段的代码 我执行到mydr[i] = dr[i].ToString(); 还是有结果的
为什么到dataTable.Rows.Add(mydr);//关键的第四步
添加行元素进去的时候就没有结果了
注意检查下面两句:
mydc.DataType = dr.GetFieldType(i);
mydr[i] = dr[i].ToString();
是否会数据类型不一致???
没有明白唉....
DataRow mydr 和dr 是一样的数据类型啊
@我想我是新手: 用try{}catch{}包围,看看是否有异常~
@幻天芒: 没有啊..