2011-10-30 2 views
0

Я пытаюсь выполнить запрос INSERT в DB mysql, но ничего не происходит, кроме того, что выполнение кода останавливается и ничего не встает. Вот код (подключение осуществляется в другом месте и работает):MySqlCommand.ExecuteNonQuery failed

  query = string.Format("INSERT INTO users (username, settings) VALUES('{0}', '{1}')", userName, sw.ToString()); 
      myCommand = new MySqlCommand(); 
      myCommand.CommandText = query; 
      myCommand.Connection = con; 
      myCommand.ExecuteNonQuery(); 

Если я ступаю код, он останавливается после ExecuteNonQuery, так obvisously что-то не так там. Боже, я ненавижу то, что он не выдаст ошибку у меня :(

+0

Это может быть много разных вещей, заставляя это быть честным. Что такое ExecuteNonQuery()? – Ignacio

+0

Проблема в том, что он ничего не возвращает, код зависает после его выполнения. Форма отображается, но вещи не подходят, я работаю так, как они должны и т. д. Я попытался выполнить запрос непосредственно против db, и он работает. – fgblomqvist

ответ

1

Вы проверили связь на самом деле открытая и попытались реализация способа путем присвоения результата к междунар в попытке поймать блок.

int result; 

try 
{ 
    if (conn.State != ConnectionState.Open) 
        conn.Open(); 

    result = Convert.ToInt32(dbComm.ExecuteNonQuery()); 
} 
catch (Exception ex) 
{ 
    logger.Error(ex); 
} 
finally 
{ 
    if (conn.State != ConnectionState.Closed) 
        conn.Close(); 
} 
+0

Удивительно, теперь он, наконец, бросил мне ошибку, и я смог ее решить! Спасибо! – fgblomqvist

+1

'int result' никогда не используется, почему у вас его есть? – IROEGBU

Смежные вопросы