c# - C#使用输入参数调用存储的MYSQL过程
问题描述
我正在使用 1 个输入参数调用存储过程finish_record 。我在这里阅读了有关该主题的所有相关问题,但我没有看到我这边的错误......但它在某个地方:-)
这里程序:
CREATE DEFINER=`root`@`localhost` PROCEDURE `finish_record`(
IN recordId INT
)
BEGIN
UPDATE bnirolovani.record r INNER JOIN(
select Sum(SumError) as Total, count(RollID) as Rolls, sum(Lenght) as Lenght, sum(ExtraMeter) as ExtraMeter from bnirolovani.roll where RecordID=recordId)
i on r.RecordID = recordId SET r.SumError = i.Total, r.SumReels=i.Rolls,r.SumProduced=i.Lenght, r.SumExtraMeter=ExtraMeter;
UPDATE record r
INNER JOIN
(SELECT
SUM(Lenght) AS Total
FROM
bnirolovani.roll
WHERE
RecordID = recordId AND Quality = 0) i ON r.RecordID = recordId
SET
r.QualityE = i.Total;
UPDATE record r
INNER JOIN
(SELECT
SUM(Lenght) AS Total
FROM
bnirolovani.roll
WHERE
RecordID = recordId AND Quality = 1) i ON r.RecordID = recordId
SET
r.QualityII = i.Total;
UPDATE record r
SET
DateProducedF = NOW()
WHERE
r.RecordID = recordID;
END
这里是我的 C# 代码
private void FinishRecord(int recordID)
{
try
{
string con = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (MySqlConnection conection = new MySqlConnection(con))
{
using (MySqlCommand cmd = new MySqlCommand("finish_record", conection))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("recordId", MySqlDbType.Int32).Value=recordID;
conection.Open();
cmd.ExecuteNonQuery();
conection.Close();
}
}
}
catch (Exception ex)
{
throw;
}
有人可以帮我错误在哪里吗?我没看到:-( THX
解决方案
解决了
我替换 C# 代码:将过程调用添加为简单的 CommandType=Command.Text 而不是 CommandType.Procedure 并且可以工作
private void FinishRecord(int recordID)
{
try
{
string con = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (MySqlConnection conection = new MySqlConnection(con))
{
using (MySqlCommand cmd = new MySqlCommand())
{
cmd.Connection = conection;
cmd.CommandType = CommandType.Text;
cmd.CommandText = String.Format("CALL finish_record({0})",recordID);
conection.Open();
cmd.ExecuteNonQuery();
conection.Close();
}
}
}
catch (Exception ex)
{
throw;
}
}
推荐阅读
- prolog - 编写 Prolog 规则来检查评分大于 8.5 的节目
- python-3.x - 在 tf.data.datasets 上训练时不断收到 ValueError 并包含 validation_data
- swift - 通过其中的按钮删除表格视图单元格
- java - 在启动生命周期中优雅地退出 quarkus
- c++ - 我可以通过检查编译器/链接器输出来确认从未定义过变量吗?
- javascript - 1 关于客户端和服务器端的错误
- shell - fzf、stdin 和从 rust 调用程序的问题:
- c# - UI操作和数据加载速度慢(DataGridView)C#程序
- r - 如何转换 R! 使用 purrr 或 apply 将 data.frame 放入键/值列表中
- autohotkey - 运行脚本时非常奇怪的行为