Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储过程的递归限制为0_C#_Mysql - Fatal编程技术网

C# 存储过程的递归限制为0

C# 存储过程的递归限制为0,c#,mysql,C#,Mysql,当我试图调用c#中的存储过程时。这是回报: 例程delete\u medikalislem超过了递归限制0(由max\u sp\u recursion\u depth变量设置) 删除medikalislem程序: DELETE FROM medikal WHERE islem_id = p_id; SET max_sp_recursion_depth=255; 存储参数: 名称:p_id,类型:VARCHAR,长度:25 using (MySqlConnection conne

当我试图调用c#中的存储过程时。这是回报:

例程delete\u medikalislem超过了递归限制0(由max\u sp\u recursion\u depth变量设置)

删除medikalislem程序:

DELETE FROM medikal WHERE islem_id = p_id;
SET max_sp_recursion_depth=255;
存储参数: 名称:p_id,类型:VARCHAR,长度:25

       using (MySqlConnection connect = new MySqlConnection(connectionString))
           {
             using (MySqlCommand cmd = new MySqlCommand(mw.db_name+ ".delete_medikalislem", connect))
                 {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("p_id", mw.medikalislem[0]);
                    connect.Open();
                    cmd.ExecuteNonQuery();
                    connect.Close();
                 }
            }
I使用删除后触发器:

BEGIN

DECLARE tl_ integer default 0;
DECLARE usd_ integer default 0;
DECLARE eur_ integer default 0;
DECLARE gbp_ integer default 0;
DECLARE toplam_ integer default 0;

SELECT tl, usd, eur, gbp INTO tl_, usd_, eur_, gbp_ FROM medikalfirmalar WHERE isim = OLD.medikal_isim;
DELETE FROM medikal_caritahsilat WHERE islem_id = OLD.islem_id;
    IF (OLD.birim='TL') THEN
    SET toplam_= tl_ - OLD.tutar;
    UPDATE medikalfirmalar SET tl = toplam_ WHERE isim = OLD.medikal_isim;
    END IF;
    IF (OLD.birim='USD') THEN
    SET toplam_= usd_ - OLD.tutar;
    UPDATE medikalfirmalar SET usd = toplam_ WHERE isim = OLD.medikal_isim;
    END IF;
    IF (OLD.birim='EUR') THEN
    SET toplam_= eur_ - OLD.tutar;
    UPDATE medikalfirmalar SET eur = toplam_ WHERE isim = OLD.medikal_isim;
    END IF;
    IF (OLD.birim='GBP') THEN
    SET toplam_= gbp_ - OLD.tutar;
    UPDATE medikalfirmalar SET gbp = toplam_ WHERE isim = OLD.medikal_isim;
    END IF;
END

如何修复它?

这只是SQL对递归性的抱怨

你必须明确地告诉它递归可以有多少层

在程序开始时添加以下内容:

DELETE FROM medikal WHERE islem_id = p_id;
SET max_sp_recursion_depth=255;

这可能会有所帮助。我想知道你是否真的触发了一个DB触发器(可能是一个删除触发器),或者类似的,你是否在代码中多次同时调用代码?其他用户是否登录到同一数据库?