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

标签 mysql

我有以下 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/

相关文章:

python - Openstack自发mysql连接错误2006,“MySQL服务器已经消失

mysql - 根据其他 2 个值从 mysql 表中删除

mysql查询避免多次查询

php - 为什么 MySQL 不返回最后插入的 id,它返回 0?

php - Mysql 别名等于

php - 如何在 php 上一次更新一个字段中的一行?

mysqldump : Couldnt execute SET OPTION SQL_QUOTE_SHOW_CREATE=1 mysql 5. 6

c# - C#aspnetCore否IEnumerable构造函数

c++ - MySQL 连接器/C++ 无法在 CodeBlocks 中工作

mysql更新表设置column3其中table1.column1像concat ('%',table2.column2 ,'%')