该代码定义了一个函数 getItemNumType,该函数有三个参数,分别为 validitemNamemaxCount,返回值为 ArrayList 类型。该函数的作用是根据传入的参数从数据库中查询符合条件的数据,并返回一个 ArrayList 类型的结果。

首先,函数定义了一个字符串变量 sql,该变量包含了一个 SQL 语句,用于查询数据库中的数据。该 SQL 语句查询了表 fin_com_undruginfo 中的五个字段,并且使用了子查询来获取 FEE_CHECK_GROUP 字段对应的名称。具体的 SQL 语句含义为:查询表 fin_com_undruginfo 中的 item_codeitem_namenum_typenum_timesFEE_CHECK_GROUP 字段,同时查询 com_dictionary 表中 type 为 'FeeCheckGroup' 且 code 等于 t.FEE_CHECK_GROUP 的记录的 name 字段,并将其作为结果集的一个字段。

var sql = @' t.item_code,t.item_name,t.num_type,t.num_times ,t.FEE_CHECK_GROUP,
                            (select a.name from com_dictionary  a where a.type = 'FeeCheckGroup' and a.code = t.FEE_CHECK_GROUP)
                            from  fin_com_undruginfo T ';

接下来,代码使用了一个布尔类型的变量 hasWhere 来标记是否已经添加了查询条件。如果 valid 等于 0 或 1,则需要增加查询条件,判断 valid_state 字段是否等于 valid 的值。如果 hasWherefalse,则需要在 sql 语句中添加 where 关键字以及查询条件;如果 hasWheretrue,则需要在 sql 语句中添加 and 关键字以及查询条件。最后,将 hasWhere 设置为 true,表示已经添加了查询条件。

if (new string[]{@'0', @'1'}.Contains(valid))
{
    //需要增加判断条件
    sql += string.Format(@' where t.valid_state = '{0}' ', valid);
    hasWhere = true;
}

接下来,代码判断 itemName 是否为空。如果 itemName 不为空,则需要添加查询条件,判断 item_name 字段是否包含 itemName。根据 hasWhere 的值,添加 whereand 关键字以及查询条件。最后,将 hasWhere 设置为 true,表示已经添加了查询条件。

if (!string.IsNullOrEmpty(itemName))

{
    if (hasWhere)
    {
        sql += string.Format(@' and t.item_name like '%{0}%' ', itemName);
    }
    else
    {
        sql += string.Format(@' where t.item_name like '%{0}%' ', itemName);
    }
    hasWhere = true;
}

接着,代码判断 maxCount 是否大于 0。如果 maxCount 大于 0,则需要限制返回的数据条数,将原来的 sql 语句修改为只返回前 maxCount 条记录,并且按照 item_code 字段升序排序。如果 maxCount 小于等于 0,则不需要限制返回的数据条数,直接返回原来的 sql 语句。

if (maxCount > 0)
{
    //限制返回条数
    sql = @' select top ' + maxCount.ToString() + sql + @' order by t.item_code asc';
}
else
{
    sql = @' select ' + sql;
}

最后,调用函数 GetItemNumTypeFromReader,传入 sql 语句作为参数,从数据库中获取符合条件的数据,并将结果以 ArrayList 类型返回。

return GetItemNumTypeFromReader(sql);

该代码演示了如何使用 C# 代码从数据库中查询数据并返回结果集。代码中使用了字符串格式化和条件语句来构建最终的 SQL 语句,并根据参数的不同来控制查询条件和返回的数据条数。这种代码结构清晰,易于理解和维护,并能够满足不同的查询需求。

C# 代码解析:根据参数查询数据库并返回结果集

原文地址: https://www.cveoy.top/t/topic/m8Ub 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录