c# - 您可以直接使用“CALL Proc_name()”作为字符串,或者在 C# 中使用 CommandType.StoredProcedure
问题描述
问题是:
从 MySQL 调用存储过程到 C# 代码时,在插入或删除时将字符串 ["CALL Proc_name('param1', 'param2', 3)"] 直接作为类似语句放置,如下所示:
this.command= new MySqlCommand("CALL getAllNamesbyOld(5)", this.conn); this.command.ExecuteReader(); ...
或者您使用 MySqlCommand.CommandType 选择存储过程,如下所示:
this.command = new MySqlCommand("getAllNamesbyOld", this.conn); this.command.CommandType = CommandType.StoredProcedure;
当然,在第一个选项中,参数直接在字符串中;在第二个选项中,您必须使用 MySqlParameters 创建参数并指示哪些参数是 IN 或 OUT 方向。
那么用哪一个??
解决方案
使用CommandType.StoredProcedure
速度更快
使用时,CommandType.StoredProcedure
您将成为参数化它的人,并将为数据库节省一些工作。
当使用第一个选项时,MySQL 将进行参数化。
推荐阅读
- cookies - 如何在空手道中设置大 cookie 标题
- kentico - Kentico 编辑器/所见即所得的问题
- pointers - 当鼠标仅在一个方向拖动以及鼠标释放捕捉到网格时如何平滑移动游戏对象(Unity)
- optimization - 优化谷歌脚本 - 访问 25 个电子表格
- javascript - Javascript动态onClick
- r - 在 R 中登录后下载/抓取/访问在线 PDF
- javascript - DropdDownlist 不显示所选值
- sql - 修剪将用于不同长度字符串的子字符串
- azure-ad-b2c - 如何在组合 signsignup 中预填充电子邮件地址
- c# - 具有百分比进度的 WebClient 下载文件