插入语句中C#应用程序中的MySql ODBC 5.1驱动程序的内存分配错误

我在C#中有一个.NET Wndows应用程序.这是一个使用MySql 5.1数据库社区版的简单Windows应用程序.我已经下载了MySql ODBC驱动程序,并在本地计算机上创建了一个dsn到我的数据库.在我的应用程序中,我可以毫无问题地执行get类型查询,但是当我执行给定的insert语

我在C#中有一个.NET Wndows应用程序.这是一个使用MySql 5.1数据库社区版的简单Windows应用程序.我已经下载了MySql ODBC驱动程序,并在本地计算机上创建了一个dsn到我的数据库.在我的应用程序中,我可以毫无问题地执行get类型查询,但是当我执行给定的insert语句时(不是我尝试过做任何其他语句),我收到以下错误:

{“ERROR [HY001] [MySQL] [ODBC 5.1驱动程序] [mysqld-5.0.27-community-nt]内存分配错误”}

我在Windows XP机器上运行.我的机器有1 GB的内存.
有人有主意吗?见下面的代码

OdbcConnection MyConn = DBConnection.getDBConnection();
    int result = -1;
    try
    {
        MyConn.Open();
        OdbcCommand myCmd = new OdbcCommand();
        myCmd.Connection = MyConn;
        myCmd.CommandType = CommandType.Text;
        OdbcParameter userName = new OdbcParameter("@UserName",u.UserName);
        OdbcParameter password = new OdbcParameter("@Password",u.Password);
        OdbcParameter firstName = new OdbcParameter("@FirstName",u.FirstName);
        OdbcParameter LastName = new OdbcParameter("@LastName",u.LastName);
        OdbcParameter sex = new OdbcParameter("@sex",u.Sex);
        myCmd.Parameters.Add(userName);
        myCmd.Parameters.Add(password);
        myCmd.Parameters.Add(firstName);
        myCmd.Parameters.Add(LastName);
        myCmd.Parameters.Add(sex);
        myCmd.CommandText = mySqlQueries.insertChatUser;
        result = myCmd.ExecuteNonQuery();
    }
    catch (Exception e)
    {
             //{"ERROR [HY001] [MySQL][ODBC 5.1 Driver][mysqld-5.0.27-community-nt]Memory  
             // allocation error"} EXCEPTION ALWAYS THROWN HERE 
    }
    finally
    {
        try
        {
            if (MyConn != null) MyConn.Close();
        }
        finally { }
    }

最佳答案
这是因为有些字段接受null,我将它们作为null传递给它们,它们应该作为DBNull.Value传递.对于允许null的所有字段都应检查为null,如果找到null,则应传递DBNull.Value.

关于作者: dawei

【声明】:石家庄站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐