-2

最近 true または false を返すように関数を更新するまで機能していた以下のコードがあります。しかし、突然オブジェクト objReader が関数の外でアクセスできなくなりました。現在のクラスの任意のメソッドでアクセスできるようにします。

 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

助言がありますか ?

4

1 に答える 1

1

私が間違っている場合は修正してください(そしてOPが言ったことに混乱しています- )が、ここでは、関連付けが破棄されているため、メソッド/関数の外でnot accessible outside the function in C#.net codeOleDbDataReaderを使用できません(ブロックしました)。objectconnectionusing

データベースからの結果を別のメソッドで使用する必要がある場合は、メソッドをDataTable使用して入力することをお勧めしますOleDbDataAdapter.Fill

于 2012-08-27T04:23:32.570 に答える