gpt4 book ai didi

mysql - 将c#代码转为mysql函数

转载 作者:行者123 更新时间:2023-11-29 18:18:15 24 4
gpt4 key购买 nike

我有以下 C# 代码,我想将其转换为 MySQL 代码片段?

  foreach (DataRow row in dtBills.Rows)
{
classes.UtilityBill ub = new classes.UtilityBill(row);

if (ub.ApprovedBy > 0)
{
if (ub.RemainingBalance() > 0) { totalOutstanding += ub.RemainingBalance(); numberOfUnpaidBills++; }
if (ub.RemainingBalance() > 0 && ub.IsOverDue()) { numberOfOverdueBills++; }
}
else
{
if (ub.ApprovedBy == 0)
{
awaitingApproval++;
}
else
{
rejectedBills++;
}
}
}

ub.RemainingBlaance() 基本上检查表中的两个字段并减去 amount_due - amount_paid

我希望返回的是一行,如下所示:

totalOutstanding, numberOfUnpaidBills, numberOfOverdueBills, awaitingApproval, rejectedBills

原表:

enter image description here我知道这可能会被认为是一个懒惰的问题,但我从未处理过 mysql 中的编码,只是简单的查询,而且我不知道如何开始。朝着正确的方向插入就足够了,而不是一个完整的解决方案。

谢谢!

最佳答案

要查询 mysql,您可以使用 mysql.data nuget 包。你可以查一下他们的文档。我创建了一个 nuget 来简化从任何 C# 框架到 mysql 的代码。如果您不介意第三方金 block ,您可以尝试一下。它被称为mysql.simple。根据我对代码试图执行的操作的理解,这里是一个用于提取数据的小代码:

using (Database db = ConnectionString)  // initializes connection
{
// you can omit the below select function if you would like to select all
using (var Row = db.Select("unit_cost, start_reading")
From("tblName").Query()
while(Row.Read()){ // gets each row
ub.unit_cost = Row["unit_cost"];
ub.start_reading= Row["start_reading"];
.
.
.
}
}

上面的db对象具有选择、更新和插入函数以及所有变体,包括带有选择的插入语句。但是,如果您想使用原始 sql 查询,可以直接使用 db.Query("sql query here")。您可以在此处查看更多文档 http://mysqlsimple.azurewebsites.net/docs

这是我随身携带的一个示例 mySql 存储过程:

DELIMITER //
DROP PROCEDURE IF EXISTS proc_IF;
CREATE PROCEDURE proc_IF (IN param1 INT)
BEGIN
DECLARE variable1 INT;
SET variable1 = param1 + 1;

IF variable1 = 0 THEN
SELECT variable1;
END IF;

IF param1 = 0 THEN
SELECT 'Parameter value = 0' ;
ELSE
SELECT 'Parameter value <> 0' ;
END IF;

END //

此示例包含参数、变量和 if 语句示例。

你可以在 C# 中这样调用它:

db.QueryValue("CALL proc_IF (@0)", myVal);

关于mysql - 将c#代码转为mysql函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46822247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com