и попытался создать таблицу с помощью ExecuteNonQuery.
Код: Выделить всё
using (MySqlConnection con = new MySqlConnection(connectionString))
{
con.Open();
MySqlCommand sqlCommand = new MySqlCommand();
sqlCommand.Connection = con;
string cmd = @"CREATE TABLE [TABLENAME] (
TIMESTAMP VARCHAR(30) NOT NULL,
TAGNAME NVARCHAR(250) NOT NULL,
MESSAGE NVARCHAR(1000) NOT NULL,
LIMITTYPE NVARCHAR(100) NOT NULL,
CLASSNAME NVARCHAR(100) NOT NULL,
STATE NVARCHAR(20) NOT NULL,
PRIMARY KEY (TIMESTAMP, TAGNAME),
KEY IDX_[TABLENAME] (TIMESTAMP, TAGNAME)
) ENGINE=InnoDB DEFAULT CHARSET=utf8";
sqlCommand.CommandText = cmd.Replace("[TABLENAME]", tableName);
sqlCommand.ExecuteNonQuery();
}
Однако, когда я выполняю эту команду, она выдает исключение NullReferenceException из sqlCommand.ExecuteNonQuery();.И когда я захожу в свою рабочую среду MySql, я вижу, что таблица создана, но также есть строка со всеми нулевыми значениями, что не разрешено.
Как это,
изображение рабочей среды< /p>
Почему это происходит и как это остановить?
Я выполнил запрос из самой рабочей среды, но строка не вставлена.
Я хочу создать только таблицу без вставки строки.
Изменить
Код: Выделить всё
at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlDataReader.Close()
at MySql.Data.MySqlClient.MySqlDataReader.Dispose(Boolean disposing)
at MySql.Data.MySqlClient.MySqlDataReader.Dispose()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
Подробнее здесь: https://stackoverflow.com/questions/785 ... eexception