mysql - C# How to pass sql variable -


i'm trying insert values mysql database via c#

insert cliente (column1, column2) values (value1, value2); set @ultima_pk =  last_insert_id(); insert cliente_ref (refcol1, refcol2) values (refvalue1, (select @ultima_pk)); insert cliente_ref (refcol1, refcol2) values (refvalue1, (select @ultima_pk)); 

when test in mysql only, work when try insert via c# cannot.

error message:

parameter '@ultima_pk' must defined. 

but @ultima_pk not param, mysql variable.

bellow insert function

public bool insert(string query) {     this.conectar();      cmd = new mysqlcommand(query, this.conexion);      cmd.executereader();     //bool retornar = cmd.executenonquery() >= 1 ? true : false;     bool retornar = true;     this.desconectar();      return retornar; } 

the connection working perfecfly.

any suggestion how can pass @ultima_pk inside of query in c#?

you need declare it, , don't need select it:

declare @ultima_pk int; insert cliente (column1, column2) values (value1, value2); set @ultima_pk =  last_insert_id(); insert cliente_ref (refcol1, refcol2) values (refvalue1, @ultima_pk); insert cliente_ref (refcol1, refcol2) values (refvalue1, @ultima_pk); 

call this:

public bool insert_cliente(string value1, string value2, string refvalue, string refvalue2) {     string query = @"     declare @ultima_pk int;     insert cliente (column1, column2) values (@value1, @value2);     set @ultima_pk =  last_insert_id();     insert cliente_ref (refcol1, refcol2) values (@refvalue1, @ultima_pk);     insert cliente_ref (refcol1, refcol2) values (@refvalue2, @ultima_pk);";      cmd = new mysqlcommand(query, this.conexion);      //i had guess @ parameter types/lengths. use actual column definitions database     cmd.parameters.add("@value1", mysqldbtype.varchar, 50).value = value1;     cmd.parameters.add("@value2", mysqldbtype.varchar, 50).value = value2;     cmd.parameters.add("@refvalue", mysqldbtype.varchar, 50).value = refvalue;     cmd.parameters.add("@refvalue2", mysqldbtype.varchar, 50).value = refvalue2;      try      {          this.conectar();         return (cmd.executenonquery() >= 1);     }         {         this.desconectar();     }  } 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -