2016-06-24 8 views
0

私はこのinsertステートメントを動作させようとしています。C#のmysqlの挿入ステートメント。パラメータ化されたクエリの例?

string sql = "INSERT INTO usuario (apellido,nombre,email,password,id_localidad) " 
         + "VALUES (?apellido,?nombre,?email,?password,?idLocalidad); "; 

      MySqlCommand cmd = new MySqlCommand(sql, conn); 
      cmd.Prepare(); 
      cmd.Parameters.AddWithValue("apellido ", usuario.apellido); 
      cmd.Parameters.AddWithValue("nombre ", usuario.nombre); 
      cmd.Parameters.AddWithValue("email ", usuario.email); 
      cmd.Parameters.AddWithValue("password ", password); 
      cmd.Parameters.AddWithValue("idLocalidad ", usuario.localidad.idLocalidad); 
cmd.ExecuteNonQuery(); 

はまだ、再び、私は最初のパラメータはを定義する必要がありますと言って、例外を取得します。 @プレースホルダを使用すると、明らかにパラメータを追加するときにnullエラーが発生します。私はまた私の接続文字列に以下を追加しました。

AllowUserVariables=True 

私はこの質問の変異体はサイト全体で登場しているが、私はアドバイス提供、まだそれを動作させることができていないが続いている知っています。

ご協力いただきますようお願い申し上げます。おかげ

+0

あなたは試してみました '@のplaceholder'にコードを追加していただけますか? –

+0

文字列sql = "INSERT INTO usuario(apellido、nombre、email、password、id_localidad)" + "VALUE(@ apellido、@ nombre、@ email、@ password、@ idLocalidad);"; –

+0

パラメータの追加方法は? –

答えて

0

はあなたのDBのタイプと一致してAdd機能を使用するためにMySQLDbTypeを指定しようとすることができます:

cmd.Parameters.Add("?apellido", MySqlDbType.VarChar).Value = usuario.apellido;