使用“call proc\u name()”作为直接字符串,或使用c中的commandtype.storedprocedure#

q0qdq0h2  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(240)

问题是:
从mysql调用存储过程到c#代码时,插入或删除时将字符串[“call procŠu name('param1','param2',3)”]直接作为类似语句放置,如下所示:

this.command= new MySqlCommand("CALL getAllNamesbyOld(5)", this.conn);
this.command.ExecuteReader();
...

或者对select存储过程使用mysqlcommand.commandtype,如下所示:

this.command = new MySqlCommand("getAllNamesbyOld", this.conn);
this.command.CommandType = CommandType.StoredProcedure;

当然,在第一个选项中,参数直接在字符串中;在第二个选项中,您必须使用mysqlparameters创建参数,并向它指示哪些参数是in方向还是out方向。
那么用哪一个呢??

dgtucam1

dgtucam11#

使用 CommandType.StoredProcedure 速度更快
使用时 CommandType.StoredProcedure 你将是一个参数化它,并将节省一些工作数据库。
当使用第一个选项时,mysql将进行参数化。

相关问题