Параметризованный запрос INSERT MySql не имеет правильного значения параметров - PullRequest
0 голосов
/ 21 марта 2011

Я пытаюсь сделать базовый оператор вставки, используя параметризованный запрос.Моя проблема в том, какой бы синтаксис я не использовал, похоже, что запрос выполняется со всеми параметрами, для которых задано значение NULL, а не их соответствующие значения (если только я жестко не кодирую значение в тексте команды).

Здесьэто код:

m_Command.CommandText = "INSERT INTO " + s_TracesTabelName + " (DateTimeTraceCreated,
Span, CenterFrequency, Data, DateTimeTestStarted) VALUES (@traceTime, @Span, 
@CenterFrequency, @Data, @testTime)";


//just trying another syntax
MySqlParameter param = m_Command.CreateParameter();
param.MySqlDbType = MySqlDbType.Datetime;
param.ParameterName = "@traceTime";
param.Value = trace.TimeCreated;
m_Command.Parameters.Add(param);

//m_Command.Parameters.Add("@traceTime",MySqlDbType.Datetime,8,"DateTimeTraceCreated");
//m_Command.Parameters["@traceTime"].Value = trace.TimeCreated;
m_Command.Parameters.Add("@Span", trace.Span);
m_Command.Parameters.Add("@CenterFrequency", trace.CenterFrequency);
m_Command.Parameters.Add("@Data", data);
m_Command.Parameters.Add("@testTime", testStarted);

        try 
        {
            m_Connection.Open();
            m_Command.ExecuteNonQuery();
        }
        catch(Exception e)
        {
            Console.WriteLine("Error Connecting to Database\n");
            //errorlog
        }
        finally
        {
            m_Connection.Close();
        }

Три различных синтаксиса приводят меня к значению пустых параметров.

ps: я видел много людей, использующих метод command.Parameters.AddWithValue (), ноКажется, у меня его просто нет.

С уважением, Бен

1 Ответ

1 голос
/ 21 марта 2011

Может быть, ваша версия провайдера mysql ADO? C # Проблема MySqlParameter

Попробуйте использовать ? вместо @

...