- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要执行此 Sql 命令(在管理工作室中运行良好):
select * from Users where Login = 'test' and PasswordHash = HashBytes('SHA1', 'test')
我写了这个 c# linqtosql:
var user = db.ExecuteQuery<User>("select * from Users where Login = {0} and PasswordHash = HashBytes('SHA1', {1})", loginTextBox.Text.Trim(), passwordPasswordBox.Password).SingleOrDefault();
但它从来没有用过!!
谁能帮帮我?
谢谢!
这是 DataContext 的日志:
select * from Users where Login = @p0 and PasswordHash = HashBytes('SHA1', @p1)
-- @p0: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [test]
-- @p1: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [test]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.0.30319.1
最佳答案
我通过 db.Log = Console.Out
分析了它,结果是:
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.0.30319.1
select * from Users where Login = @p0 and PasswordHash = HashBytes('SHA1', @p1)
-- @p0: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [Admiral Trask]
-- @p1: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [Arutha]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.0.30319.1
看着这个,我想象问题是参数是 NVarChar
而不是 varchar
- 所以取散列(二进制操作) 是不同的。如果您将其散列为varchar
,您应该在HASHBYTES
之前将字符串转换为varchar
。
例如以下作品:
var user = db.ExecuteQuery<User>(@"select * from Users where Login = {0}
and PasswordHash = HashBytes('SHA1', CAST({1} as varchar(40)))", cn, pw)
.SingleOrDefault();
一个更简单的例子是:
SELECT HASHBYTES('SHA1','12345'), HASHBYTES('SHA1',N'12345')
关于.net - LinqToSql 和 HashBytes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4464643/
// goal: update Address record identified by "id", with new data in "colVal" string cstr = Connectio
在 ADO.Net/SQLClient 中我经常会做这样的事情: SELECT COUNT(*) FROM SomeTable WHERE SomeKey = 1234 ...并使用 executes
我有 3 个类(class): BasePlace、Hall、HallPlan。 关系: BasePlace - Hall:一对多。 Hall - HallPlan:一对多。 我从远程程序中获取地点(
假设我有一个包含 DateTime 字段和一个 int 字段的表并执行如下查询: var query = context.tblSomeTable.Where(s=>s.Name == "Hello
我有一个使用多个连接运行的 LINQ 查询,我想将它作为 IQueryable 传递并在其他方法中应用额外的过滤器。 问题是我不知道如何传递 var数据类型并保持强类型,如果我尝试将其放入我自己的类中
我有一个问题。如果我使用的是 LinqToSql,我的程序会将我的数据库加载到内存中。小例子: //pageNumber = 1; pageSize = 100;
我有以下代码: var tagToPosts = (from t2p in dataContext.TagToPosts joi
我喜欢 LinqToSql 数据上下文对象和底层 SQL 数据库之间的紧密耦合,但我很好奇混淆是如何融入画面的。 [global::System.Data.Linq.Mapping.ColumnAtt
在您将其标记为重复之前,我进行了广泛的搜索,但没有提供我的答案。我看过了 Recursive select via LINQ?和 linq to sql recursive query和 http:/
这可能已经有人问过,但我找不到,所以就到这里吧。 我们有一个表的通用读取,使用 Context.GetTable( ) 然后附加一个表达式来查找表中的单个记录。该表具有关联。不幸的是,我们正在尝试更改
我在使用 LinqToSQL 时无法将连接字符串初始化为文本文件。 我正在尝试使用以下连接字符串创建 DataContext: Provider=Microsoft.Jet.OLEDB.4.0;Dat
这里有一些 LinqToSql 问题: // Returns the number of counties in a state, // or all counties in the USA if t
我正在查看 LINQPad 提供的样本 LINQ 查询,这些查询取自 Nutshell 书中的 C# 4.0,并遇到了一些我从未在 LINQ to SQL 中使用过的东西...编译查询。 这是确切的例
我有一些 linq 实体继承了这样的东西: public abstract class EntityBase { public int Identifier { get; } } public int
有没有办法使用 LINQToSQL 从表中返回随机行? 最佳答案 是的,在表的计数范围内生成一个随机数,然后 Skip() 该数字,Take(1) 然后返回结果序列的第一个元素。有点像 var R =
我刚刚开始使用 LinqToSql 创建我的数据访问层。每个人都在谈论很酷的语法,我真的很喜欢 Linq。 但是当我看到如果你在 LinqContext 上拖动一些表时你的类是如何生成的,我很惊讶:这
我有以下形式的数据设置:State 1->n County 1->n City。 在我的 State 对象中,我想要返回至少包含一个人口大于 p 的城市的所有县。如果我用 sql 写这个,它会是: s
我是 LINQtoSQL 的新手。我选择学习它是因为我没有太多用 SQL 编写存储过程的经验,并且认为 LINQtoSQL 可能是进行数据访问的另一种方法。不管怎样,我创建了一个简单的 ASP.NET
我需要执行此 Sql 命令(在管理工作室中运行良好): select * from Users where Login = 'test' and PasswordHash = HashBytes('S
有没有一种方法可以分析 LinqToSql,以便我可以看到查询在数据库中花费了多长时间,以及映射到对象需要多长时间? 据我从 SQL Profiler 判断,我的查询速度快如闪电,但应用程序端的调用速
我是一名优秀的程序员,十分优秀!