oledbdatareader在C#.net代码中的函数外部不可访问



我有下面的代码,在我最近更新函数以返回true或false之前,这些代码一直有效。但是对象objReader突然停止了在函数外部的访问。我在类的开头声明为private static oledbdatareader=null;这样我就可以在当前类中的任何方法中访问它。

 string strProvider = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + strCurWBPath + ";;Mode=ReadWrite" + @";Extended Properties=""Excel 8.0;HDR=Yes;""";
            using ( objConn = new OleDbConnection(strProvider))
             {
                 objConn.Open();                    
                using ( objCmd = new OleDbCommand(strQuery, objConn))
                 {
                     objCmd.CommandType = CommandType.Text;
                     objCmd.ExecuteNonQuery();
                     objReader = objCmd.ExecuteReader(CommandBehavior.SequentialAccess);
                    // No point reading/writing data if there are no rows.
                     if (objReader.HasRows)
                     {
                             if (!objReader.IsClosed)
                             {
                                 return true;
                             }
                             else
                                 return false;                        

                     }
                     else
                     {
                         MessageBox.Show("There are no Rows to process. ");
                     }
                }//end of using1
            }//end of using2

有什么建议吗?

如果我错了(并且对OP所说的-not accessible outside the function in C#.net code感到困惑),请纠正我,但在这里,您不能在方法/函数之外使用OleDbDataReader object,因为它的关联connection已被处理(您有using块)。

如果您希望在其他方法中使用来自数据库的结果,那么我建议您使用OleDbDataAdapter.Fill方法填充DataTable

相关内容

  • 没有找到相关文章

最新更新