0

win7 x64 プラットフォームで mysql .net コネクタ 6.4.4 を使用しています。MySqlDataReader オブジェクトからデータを読み取るときに、18 行目以降で例外がスローされます。しかし、別のアプリケーションでは、エラーなしで 40 行を取得できました。

エラーはここにあります:

MySqlDataReader.Read()

どんな助けでも大歓迎です。

Exception details:

System.ArgumentOutOfRangeException was unhandled
  Message=Non-negative number required.
Parameter name: count
  Source=mscorlib
  ParamName=count
  StackTrace:
       at System.IO.MemoryStream.Read(Byte[] buffer, Int32 offset, Int32 count)
       at MySql.Data.MySqlClient.MySqlPacket.Read(Byte[] byteBuffer, Int32 offset, Int32 count)
       at MySql.Data.MySqlClient.MySqlPacket.ReadString(Int64 length)
       at MySql.Data.Types.MySqlString.MySql.Data.Types.IMySqlValue.ReadValue(MySqlPacket packet, Int64 length, Boolean nullVal)
       at MySql.Data.MySqlClient.NativeDriver.ReadColumnValue(Int32 index, MySqlField field, IMySqlValue valObject)
       at MySql.Data.MySqlClient.Driver.ReadColumnValue(Int32 index, MySqlField field, IMySqlValue value)
       at MySql.Data.MySqlClient.ResultSet.ReadColumnData(Boolean outputParms)
       at MySql.Data.MySqlClient.ResultSet.NextRow(CommandBehavior behavior)
       at MySql.Data.MySqlClient.MySqlDataReader.Read()
       at VeriTasima.Form1..ctor() in E:\Projeler\VeriTasima\VeriTasima\Form1.cs:line 42
       at VeriTasima.Program.Main() in E:\Projeler\VeriTasima\VeriTasima\Program.cs:line 18
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

更新しました:

// test
            string commandString = "SELECT * FROM haber LIMIT 50";
            MySqlConnection connection = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString);
            MySqlCommand command = new MySqlCommand(commandString, connection);
            connection.Open();
            MySqlDataReader sdr = command.ExecuteReader();
            int count = 0;
            while (sdr.Read())
            {
                count++;
            }
            sdr.Close();
            sdr.Dispose();
            command.Dispose();
            connection.Close();
            connection.Dispose();
            MessageBox.Show(count.ToString());

更新しました:

ターゲット プラットフォームを x86 から任意の CPU に設定することで、この問題を修正しました。正常に動作するようになりました。

4

0 に答える 0