C#KeyValue行中的foreach列

时间:2017-02-04 22:41:22

标签: c# mysql

我今天在这里试图弄清楚如何做到这一点。我有下面的代码来查看DataRow中的每一列,但是如何访问键AND值?我想把它分配到课堂上的字典中,但我似乎无法得到它们,我能得到任何东西的唯一方法是通过调用:

var columnValue = playerDataRow[column];

这是完整的事情:

using (var mysqlConnection = Sirius.GetServer().GetDatabaseManager().GetConnection())
{
    mysqlConnection.SetQuery("SELECT * FROM `users` WHERE `auth_ticket` = @authTicket LIMIT 1");
    mysqlConnection.AddParameter("authTicket", authTicket);

    var playerDataTable = mysqlConnection.GetTable();

    foreach (DataRow playerDataRow in playerDataTable.Rows)
    {
        foreach (DataColumn column in playerDataTable.Columns)
        {
            var columnValue = playerDataRow[column];
        }
    }
}

3 个答案:

答案 0 :(得分:0)

变量列将是键,值将为columnValue

答案 1 :(得分:0)

foreach (DataRow playerDataRow in playerDataTable.Rows)
{
    var myDic = new Dictionary<string, object>();

    foreach (DataColumn column in playerDataTable.Columns)
    {
        myDic.Add(column.ColumnName, playerDataRow[column]);
    }
}

答案 2 :(得分:0)

看起来你只需要一行输出 - 可能是基于auth_ticket

的特定用户

这里有一个例子,说明如何将此行的所有值都放入字符串字典中(我只是按照本例的方式将所有数据转换为字符串)

var htRowValues = new Dictionary<string,string>();
using (var mysqlConnection = Sirius.GetServer().GetDatabaseManager().GetConnection())
{
    mysqlConnection.SetQuery("SELECT * FROM `users` WHERE `auth_ticket` = @authTicket LIMIT 1");
    mysqlConnection.AddParameter("authTicket", authTicket);

    var playerDataTable = mysqlConnection.GetTable();

    foreach (DataRow playerDataRow in playerDataTable.Rows)
    {
        foreach (DataColumn column in playerDataTable.Columns)
        {
            var columnValue = playerDataRow[column];
            htRowValues[column.ColumnName]=System.Convert.ToString(columnValue);
        }
    }
}

现在,您在字典中拥有这一行数据的所有列值。