我今天在这里试图弄清楚如何做到这一点。我有下面的代码来查看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];
}
}
}
答案 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);
}
}
}
现在,您在字典中拥有这一行数据的所有列值。