C# 使用Connector/NET的关联数组/哈希表/哈希表

C# 使用Connector/NET的关联数组/哈希表/哈希表,c#,mysql,hashtable,C#,Mysql,Hashtable,我正在使用asp.NET和c#,使用MySQL的connector/NET插件连接到MySQL数据库(这并不奇怪) 这样做很好,可以连接、运行查询等,但有可能返回哈希表或类似的结果吗?保存在同一个表上运行descripe以获取列名,并每次使用这些值创建哈希。MySQL C/C++连接器(我假设它是围绕C#包装的(而不是在C#中重新实现的)返回一个包含结果的二元数组。这只是列和行数据,而不是列名。API还通过mysql\u fetch\u field\u direct()返回一个字段(列名)值,这

我正在使用asp.NET和c#,使用MySQL的connector/NET插件连接到MySQL数据库(这并不奇怪)


这样做很好,可以连接、运行查询等,但有可能返回哈希表或类似的结果吗?保存在同一个表上运行descripe以获取列名,并每次使用这些值创建哈希。

MySQL C/C++连接器(我假设它是围绕C#包装的(而不是在C#中重新实现的)返回一个包含结果的二元数组。这只是列和行数据,而不是列名。API还通过
mysql\u fetch\u field\u direct()
返回一个字段(列名)值,这是在获得查询结果后的一个单独的函数调用。这也是一个二维数组。连接器本身不包含用于将两个独立结果(列名+列/行数据)合并到哈希表中的API

不需要进行第二次查询来获取列名,只需在赋值过程中为每一列调用
mysql\u fetch\u field\u direct()
。这将为您提供字段名以及该列/行中包含的数据。在这一点上,如何安排这些数据,如将其存储在哈希表中等,取决于开发人员


我使用一个helper函数作为查询执行的包装器,它将每一行存储在一个二叉树中,列名是键,并返回一个树的链接列表,供我处理所需的内容。

在.net中,您仅获得数据表和数据集,数据表由数据行组成,这些非常类似于哈希表,在大多数情况下,您可以使用它们来实现任务,但是如果您需要哈希表,您可以使用此代码

public static Hashtable convertDataRowToHashTable(DataRow dr)
{
    if (dr == null)
    {
        return null;
    }

    Hashtable ret = new Hashtable(dr.Table.Columns.Count);

    for (int iColNr = 0; iColNr < dr.Table.Columns.Count; iColNr++)
    {
        ret[dr.Table.Columns[iColNr].ColumnName] = dr[iColNr];
    }
    return ret;
}
但若您需要哈希表中的一个新列,则必须将该列添加到datatable,而不是数据行myTable.Columns.add(“名称”、“类型”)


希望这有帮助

那么我能在C#应用程序中使用该API吗?我以为它只适用于C/C++应用程序。
newRow["column1"]="some value";