Asp.net 将字符串与db中的反斜杠进行比较

Asp.net 将字符串与db中的反斜杠进行比较,asp.net,escaping,Asp.net,Escaping,你好,我有这根绳子 string a="a\" 我需要将其与数据库中的字符串进行比较,但当我从数据库中获取此字符串时,它会返回双斜杠: stringfromdb="a\\" 因此,比较失败: if(a==stringfromdb){//do something} 首先,你必须弄清楚你真正想要比较的是什么。由于字符串不相等,比较应该失败 也许你想比较所有东西,除了后面的反斜杠?如果是这种情况,则使用以下方法: if(a.TrimEnd('\\') == stringfromdb.TrimEn

你好,我有这根绳子

string a="a\"
我需要将其与数据库中的字符串进行比较,但当我从数据库中获取此字符串时,它会返回双斜杠:

stringfromdb="a\\"
因此,比较失败:

if(a==stringfromdb){//do something}

首先,你必须弄清楚你真正想要比较的是什么。由于字符串不相等,比较应该失败

也许你想比较所有东西,除了后面的反斜杠?如果是这种情况,则使用以下方法:

if(a.TrimEnd('\\') == stringfromdb.TrimEnd('\\')){//do something}

但更好的办法可能是找出为什么要将这些反斜杠添加到插入数据库的字符串中。

首先,您必须找出真正想要比较的内容。由于字符串不相等,比较应该失败

也许你想比较所有东西,除了后面的反斜杠?如果是这种情况,则使用以下方法:

if(a.TrimEnd('\\') == stringfromdb.TrimEnd('\\')){//do something}

但更好的办法可能是找出为什么将这些反斜杠添加到插入数据库的字符串中。

问题是,我有一个包含反斜杠的strng,我想将它与db中的同一字符串进行比较,一个哈希密码e½CÙÊa,™\v\n“e-现在,当我从db获得这个字符串时,它将用双反斜杠重新发音:e½CÙÊalpha,™\\v\\n“e-Ê和比较失败Parrows81:我不认为DBMS增加了额外的反斜杠。我认为您得到的字符串正是插入数据库的字符串。无论如何,我的答案中代码中的条件应该使其计算为true。问题是我有一个包含反斜杠的strng,我想将它与db中的同一字符串进行比较,一个哈希密码e½CÙÊalpha,™\v\n“e-现在,当我从db获得这个字符串时,它将用双反斜杠重新发音:e½CÙÊalpha,™\\v\\n“e-Ê和比较失败Parrows81:我不认为DBMS增加了额外的反斜杠。我认为您得到的字符串正是插入数据库的字符串。无论如何,我的答案中代码中的条件应该使它的计算结果为true。你确定字符串真的包含反斜杠吗?我这样问是因为反斜杠似乎来自C中的表示法,例如\表示为\\,表示为\。反斜杠可能是visual studio/C显示特殊字符的一种方式,但问题是:我有一个运行时函数,可以对字符串进行哈希:string hashedString hs=ComputeHash1,1,如果我在visual studio调试中看到它,它是:e½CÙÊalpha,™\v\n“e-Ê,现在如果我从db中选择相同的字符串并用dataadapter填充数据表:从userid='UserWhitsalt1和Password1'所在的用户中选择hashedpassword,我在visual studio调试器中看到该数据表的反斜杠加倍:e½CÙÊa,™\\v\\n“e-Ê”这使得比较失败。您确定字符串确实包含反斜杠吗?我这样问是因为反斜杠似乎来自C中的表示法,例如\表示为\\,表示为\。反斜杠可能是visual studio/C显示特殊字符的一种方式,但问题是:我有一个运行时函数,可以对字符串进行哈希:string hashedString hs=ComputeHash1,1,如果我在visual studio调试中看到它,它是:e½CÙÊalpha,™\v\n“e-Ê,现在如果我从db中选择相同的字符串并用dataadapter填充数据表:从userid='UserWhitsalt1和Password1'所在的用户中选择hashedpassword,我在visual studio调试器中看到该数据表的反斜杠加倍:e½CÙÊa,™\\v\\n“e-Ê”,这使得比较失败