从数据表结果分配变量

时间:2019-04-01 21:07:18

标签: c# linq

我有一个查询,例如:

 var table = db.GetTableBySQL($"EXEC usp_User_OldPassword_Check  @UserName = '{txtUserName.Text}'");

它将两个值返回到数据表中。因此,我想将该值分配给两个变量,以便这样做:

 bool isOldPassword = false;
 var currentEmpGuid = string.Empty;

然后:

 var test = (from DataRow dr in table.Rows
                        select new
                        {
                            isOldPassword = (bool)dr["IsOldPassword"],
                            CurrentEmpGuid = (Guid)dr["EmpGuid"]
                        });

table.Rows中的数据正确无误,但未将值分配给我的变量。有人看到任何错误吗?问候

1 个答案:

答案 0 :(得分:1)

此:

 var test = (from DataRow dr in table.Rows
             select new
             {
                  isOldPassword = (bool)dr["IsOldPassword"],
                  CurrentEmpGuid = (Guid)dr["EmpGuid"]
             });

创建一组匿名对象,每个匿名对象用于数据表的每一行,每个匿名对象包含2个属性:isOldPasswordCurrentEmpGuid。因此,例如,如果您使用test.First.CurrentEmpGuidtest.First.IsOldPassword,则将访问数据表中的值。

但是您不需要LINQ即可完成;您可以简单地做到:

isOldPassword = (bool)table.Rows[0]["IsOldPassword"],
CurrentEmpGuid = (Guid)table.Rows[0]["EmpGuid"]

为变量分配数据表第一行的值。

这当然是假设您的查询总是返回一行...