你使用" CALL Proc_name()"作为直接字符串,或在C#中使用CommandType.StoredProcedure

时间:2018-06-07 08:36:32

标签: c# mysql stored-procedures

问题是:

  • 当你从MySQL调用存储过程到C#代码时,你放置了 string [" 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方向。

那么使用哪一个?

1 个答案:

答案 0 :(得分:0)

使用CommandType.StoredProcedure更快

使用CommandType.StoredProcedure时,您将成为参数化的人,并将为数据库保存一些工作。

使用第一个选项时,MySQL会进行参数化。