public static int ExecuteSql(string SQLString)
        {
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (MySqlException E)
                    {
                        throw new Exception(E.Message);
                    }
                    finally
                    {
                        cmd.Dispose();
                        connection.Close();
                    }
                }
            }
        }调用方法的时候 报这个错误
键不能为空。
参数名: key 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentNullException: 键不能为空。
参数名: key是哪里错了?

解决方案 »

  1.   

    connectionString,可能是它的错。connectionstring会进行解析,分割的变量可能是key。
      

  2.   

    connectionString 是这样写的 <add name="MyString" connectionString="Data Source=.;Initial Catalog=school;Persist Security Info=True;User ID=root;Password=sa" providerName="MySql.Data.MySqlClient"/>
    这样写可以么?
      

  3.   

    我也遇到同样的问题,我用了mysql数据库,
    键不能为空。
    参数名: key 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentNullException: 键不能为空。
    参数名: key源错误: 
    行 85:         catch (System.Exception e)
    行 86:         {
    行 87:             throw (e);
    行 88:         }
    行 89:         return cmd;
     源文件: c:\Documents and Settings\Administrator\桌面\login\App_Code\MySQL_DB.cs    行: 87 
      

  4.   


    调用web.config中的MyString阿
    如:Configuration.ConfigurationManager.connectionString["MyString"] 这样调用 试试
      

  5.   

    <add key="MyString" ...
    把name改成key?
      

  6.   

    捕捉到 System.ArgumentNullException
      Message="键不能为空。\r\n参数名: key"
      Source="mscorlib"
      ParamName="key"
      StackTrace:
           在 System.Collections.Hashtable.ContainsKey(Object key)
           在 System.Collections.Hashtable.Contains(Object key)
           在 MySql.Data.MySqlClient.MySqlPoolManager.GetPool(MySqlConnectionStringBuilder settings)
           在 MySql.Data.MySqlClient.MySqlConnection.Open()
           在 MySQL_DB.CreateCmd(String SQL, MySqlConnection myCon) 位置 c:\Documents and Settings\Administrator\桌面\login\App_Code\MySQL_DB.cs:行号 82
      InnerException: 
      

  7.   


    从这段完整的信息推断,那个MySql的类应该是读取的AppSetting部分。
    所以这个方法“MySqlConnection(connectionString)”没有获取到值。你尝试在config文件里面添加    <appSettings>
        <add key="" value=""/>
      </appSettings>真的太像这里的Key了,估计数据库连接字符串是设置在appSettings节当中的。