数据转换问题
有时要进行数据转换,将SqlDataReader对象转换为DataTable对象,请看以下代码:
public static DataTable ConvertdrTodt(SqlDataReader dataReader)
{
///定义DataTable
DataTable datatable = new DataTable();
///动态添加表的数据列
for(int i = 0; i < dataReader.FieldCount; i++)
{
DataColumn mydc = new DataColumn();
mydc.DataType = dataReader.GetFieldType(i);
mydc.ColumnName = dataReader.GetName(i);
datatable.Columns.Add(mydc);
}
///添加表的数据
while(dataReader.Read())
{
DataRow mydr = datatable.NewRow();
for(int i = 0; i < dataReader.FieldCount; i++)
{
mydr[i] = dataReader[i].ToString();
}
datatable.Rows.Add(mydr);
mydr = null;
}
///关闭数据读取器
dataReader.Close();
return datatable;
}
其中的这一句不太明白:mydr[i] = dataReader[i].ToString();
若dataReader[i]是Image或是Binary之类的数据类型对象也能强制转换为字符串类型吗?谢谢!
------解决方案--------------------object都有ToString.
mydr[i] = dataReader[i].ToString();不能保证得到真正的类型。