while(dataReader.Read)
{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
本来myDataRow就是while里的局部变量,出了while应该就自动释放了,为什么还要赋值null呢?

解决方案 »

  1.   

    DataRow myDataRow = null;
    while(dataReader.Read)
    {
    myDataRow = datatable.NewRow();
    for(int i=0;i<schemaTable.Rows.Count;i++)
    {
    myDataRow[i] = dataReader[i].ToString();
    }
    datatable.Rows.Add(myDataRow);
    }
    myDataRow = null;
      

  2.   

    while(dataReader.Read)
    {
    DataRow myDataRow = datatable.NewRow();
    for(int i=0;i<schemaTable.Rows.Count;i++)
    {
    myDataRow[i] = dataReader[i].ToString();
    }
    datatable.Rows.Add(myDataRow);
    myDataRow = null;
    }
    myDataRow 还保持着引用,如果在while里就把myDataRow = null,那么datatable里的那行也为空了。
      

  3.   

    DataRow myDataRow = null;
    while(dataReader.Read)
    {
    myDataRow = datatable.NewRow();
    for(int i=0;i<schemaTable.Rows.Count;i++)
    {
    myDataRow[i] = dataReader[i].ToString();
    }
    datatable.Rows.Add(myDataRow);
    }
    myDataRow = null;这样垃圾自动收集的可能会快些