我有以下 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
原表:
我知道这可能会被认为是一个懒惰的问题,但我从未处理过 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/