1

Windows CE デバイスを使用しています。SqlServerCe を使用しているアプリケーションを実行しようとしています。メソッドを実行しようとするとExecuteReader.Read()、以下のような例外がスローされます。

Error
ExceptionCode: 0xc0000005
Exception Adress : 0x4d776569
Reading: 0x4d776568

at
NativeMethods.GetKeyInfo(IntPtrpTx,String pwszBase Table, IntPtrprgDbKeyInfo, Int 32 cDKeyInfo, IntPtr pError)
at
SqlCeDataReader.FillMetaData(SqlCeCommand command)
at
SqlCeCommand.InitializeDataReader(SqlCeDataReader reader, Int32 resultType)
at
SqlCeCommand.ExecuteCommand(CommandBehavior behavior, String method, ResulSetOptions options)
at
SqlCeCommand.ExecuteReader(CommandBehavior behavior)
at
Prothocol.checkReadACK(SerialPort serialport,SqlCeCommand sql_cmd)
at
Message.communicationThread()

Sql の他のメソッドは問題を引き起こしません (ExecuteNonQuery など)。

そのデバイスに Microsoft SQL Server Compact Edition\v3.5 と .NET Framework 3.5 があります。

また、開発には VS 2008 スマート デバイス アプリケーションを使用しています。

 public static void checkReadACK(SerialPort serialport, SqlCeCommand sql_cmd)
        {
            String s;
            long selectedID;
            s = "SELECT receivedNum,id from MESSAGE_INBOX where (status = 2)"; //Status: 0 read and replied. 1 unread. 2 read and notreplied.
            try
            {
                sql_cmd.CommandText = s;
                sql_cmd.ExecuteNonQuery();
                SqlCeDataReader reader = sql_cmd.ExecuteReader();


                while (reader.Read())
                {
                    sendReadACK(reader.GetString(0),serialport);
                    selectedID = reader.GetInt64(1);
                    s = "UPDATE MESSAGE_INBOX SET status = 0 WHERE (id = " + selectedID + ")";
                    sql_cmd.CommandText = s;
                    sql_cmd.ExecuteNonQuery();
                }
            }
            catch //(Exception err)
            {
                //  MessageBox.Show(err.Message.ToString());
            }
        }

そして、これは期待が発生する関数です。

4

0 に答える 0