2011-10-30 29 views
0

mysql DBでINSERTクエリを実行しようとしていますが、コードの実行が停止して何も挿入されないこと以外は何も起こりません。そうobvisously何かが間違っている、私はコードをステップした場合MySqlCommand.ExecuteNonQueryが失敗します

  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後に停止: は、ここでは、コード(接続は別のポイントで行われ、働いている)です。私はそれは私にエラーをスローしないこと:(

+0

ExecuteNonQuery()は何を返すのですか? – Ignacio

+0

問題は何も返されず、コードが実行された後にハングします。フォームは表示されますが、彼らは等のように働いています。 私はdbに対して直接クエリを実行しようとしました、それは動作します。 – fgblomqvist

答えて

1

嫌い神はあなたには、接続を確認しまし実際に開いており、トライcatchブロックでintに結果を割り当てることによって、メソッドを実行しようとした。

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

関連する問題