【问题标题】:DataSet querying like SQL table像 SQL 表一样查询数据集
【发布时间】:2012-08-11 16:02:38
【问题描述】:

有没有办法像 SQL 表一样查询DataSet?例如。如果用户名与密码匹配,我想签入DataSet。我可以像这样使用这段代码:

foreach (DataRow row in dataset.Tables[0].Rows)
{
   MessageBox.Show(row.ItemArray[1].ToString());
}

但我只是希望它选择给定用户名的行,而不是迭代整个表。

谢谢。

【问题讨论】:

    标签: sql-server dataset password-checker


    【解决方案1】:

    您可以使用 RowFilter

    dataset.Tables[0].DefaultView.RowFilter = "UserName='MyUserName' 
    And Password='0x0000000000000000'"
    
    if(dataset.Tables[0].DefaultView.Count > 0){
    //User Found
    }else{
    //User Not Found
    }
    

    更多信息如下;

    http://msdn.microsoft.com/en-us/library/system.data.datatable.defaultview.aspx

    也就是说,理想情况下,这种过滤是在 SQL 而不是 .NET 代码中完成的。

    【讨论】:

      【解决方案2】:

      你可以使用

       dataset.Tables[0].Select(....)
      

      http://msdn.microsoft.com/en-us/library/det4aw50.aspx

      但你不应该。在几乎所有情况下,SQL 服务器都会更快地找到匹配项。

      另外,你应该散列你的密码

      【讨论】:

        猜你喜欢
        • 2010-11-21
        • 2010-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-15
        • 1970-01-01
        • 2014-09-06
        相关资源
        最近更新 更多