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

前端之家收集整理的这篇文章主要介绍了插入语句中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相关文章