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

我在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.

相关文章

在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信...
> [合辑地址:MySQL全面瓦解](https://www.cnblogs.c...
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时...
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括...
navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...