title: C# mysql example Command.ExecuteReader throws exception
body: <p>I am writing a segment of C# code to get some data from mysql database. I have started with ready-made example but it gave me an error at <code>rdr = cmd.ExecuteReader()</code></p>
  
  <p>A screen Shot of the thrown exception is shown below as well</p>
  
  <p><img src="https://i.stack.imgur.com/Acu1g.png" alt="exception thrown screenshot">  </p>
  
  <pre><code>using System;
  using MySql.Data.MySqlClient; 
  
  public class Program
  {
  
      static void Main() 
      {
              string serverName = "192.168.0.012";
              string port = "1234";
              string db = "cust_db";
              string userID = "root";
              string password = "pass";
              string cs = "Server=" + serverName + ";Port=" + port + ";Database=" + db + ";Uid=" + userID + ";password=" + password;
  
  
          MySqlConnection conn = null;
          MySqlDataReader rdr = null;
  
          try 
          {
              conn = new MySqlConnection(cs);
              conn.Open();
  
              string stm = "SELECT * FROM cust_tb";
              MySqlCommand cmd = new MySqlCommand(stm, conn);
              rdr = cmd.ExecuteReader();
  
              while (rdr.Read()) 
              {
                  Console.WriteLine(rdr.GetInt32(0) + ": " 
                      + rdr.GetString(1));
              }
  
          } catch (MySqlException ex) 
          {
              Console.WriteLine("Error: {0}",  ex.ToString());
  
          } finally 
          {
              if (rdr != null) 
              {
                  rdr.Close();
              }
  
              if (conn != null) 
              {
                  conn.Close();
              }
  
          }
      }
  }
  
  
  at MySql.Data.MySqlClient.CharSetMap.GetChararcterSet(DBVersion version, String CharSetName)
     at MySql.Data.MySqlClient.NativeDriver.GetFieldMetaData41()
     at MySql.Data.MySqlClient.NativeDriver.GetFieldMetaData()
     at MySql.Data.MySqlClient.NativeDriver.ReadColumnMetadata(Int32 count)
     at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
     at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
     at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
     at Program.Main() in c:\Users\omran.alhammadi\Desktop\csMysqlConnection\csMysqlConnection\Program.cs:line 28
     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.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
     at System.Threading.ThreadHelper.ThreadStart()&lt;/StackTrace&gt;&lt;ExceptionString&gt;System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
     at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
     at MySql.Data.MySqlClient.CharSetMap.GetChararcterSet(DBVersion version, String CharSetName)
     at MySql.Data.MySqlClient.NativeDriver.GetFieldMetaData41()
     at MySql.Data.MySqlClient.NativeDriver.GetFieldMetaData()
     at MySql.Data.MySqlClient.NativeDriver.ReadColumnMetadata(Int32 count)
     at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
     at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
     at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
     at Program.Main() in c:\Users\omran.alhammadi\Desktop\csMysqlConnection\csMysqlConnection\Program.cs:line 28
     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.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
     at System.Threading.ThreadHelper.ThreadStart()&lt;/ExceptionString&gt;&lt;/Exception&gt;&lt;/TraceRecord&gt;
  An unhandled exception of type 'System.Collections.Generic.KeyNotFoundException' occurred in mscorlib.dll
  Additional information: The given key was not present in the dictionary.
  The program '[17084] csMysqlConnection.vshost.exe: Managed (v4.0.30319)' has exited with code -1 (0xffffffff).
  </code></pre>