日期:2014-05-20  浏览次数:20507 次

数据转换问题
有时要进行数据转换,将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();不能保证得到真正的类型。