【问题标题】:Create Procedure that have parametre?创建具有参数的过程?
【发布时间】:2014-10-15 12:10:53
【问题描述】:

这是我的代码:

using (MySql.Data.MySqlClient.MySqlConnection cn = new   
MySql.Data.MySqlClient.MySqlConnection(
            Properties.Settings.Default.CONNNConnectionString))
        {
            cn.Open();
            MySql.Data.MySqlClient.MySqlCommand cm = new 
            MySql.Data.MySqlClient.MySqlCommand();
            cm.CommandType = CommandType.Text;
            cm.Connection = cn;
            cm.CommandText="CREATE  PROCEDURE `GetMovement`(RefArtt vARCHAR(20),idos INTEGER) "+
"BEGIN "+
"SET @Qt=0; "SELECT * ,@Qt:=@Qt+qteliv-qtesor as stock FROM tableInOut;"+
"End";
cm.ExecuteNonQuery();}

异常:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 ''@Qt'=0; 附近使用的正确语法;选择 * ...

【问题讨论】:

  • 你还没有声明@Qt 参数
  • 代码 sn-p 用于 CSS / HTML / JS。它不适合 C# 代码。
  • 如果我从 sql IDE 执行查询,查询工作正常,但我不使用 c# 代码!!

标签: c# mysql stored-procedures


【解决方案1】:

我 100% 没听懂你的问题:

SELECT * ,@Qt:=@Qt+qteliv-qtesor as stock FROM tableInOut;

如果你能解释一下,以便我在需要时调整我的代码,但这里是一个例子:

using (MySql.Data.MySqlClient.MySqlConnection cn = new   
MySql.Data.MySqlClient.MySqlConnection(
            Properties.Settings.Default.CONNNConnectionString))
{
    cn.Open();
    MySql.Data.MySqlClient.MySqlCommand cm = new 
    MySql.Data.MySqlClient.MySqlCommand();
    cm.CommandType = CommandType.Text;
    cm.Connection = cn;
    cm.CommandText=@"
    DELIMITER //
     CREATE PROCEDURE GetMovement(IN RefArtt VARCHAR(20), IN idos INTEGER)
       BEGIN
        SELECT * 
        FROM tableInOut 
        WHERE ref = RefArtt AND id = idos;
       END //
    DELIMITER ; 
    ";
    cm.ExecuteNonQuery();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多