У меня есть приложение Wndows.NET в C#. Это - простое Приложение Windows, которое использует выпуск сообщества базы данных MySql 5.1. Я загрузил драйвер MySql ODBC и создал dsn к моей базе данных по моей локальной машине. На моем приложении я могу выполнить, получают запросы типа без проблем, но когда я выполняю данный оператор вставки (не, что я попытался делать любых других), я получаю следующую ошибку:
{"ОШИБКА [HY001] [MySQL] [драйвер ODBC 5.1] [mysqld-5.0.27-community-nt] Ошибка распределения памяти"}
Я работаю на машине Windows XP. Моя машина имеет 1 ГБ памяти. У кого-либо есть какие-либо идеи? См. код ниже
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.