我正在尝试从 sql 表中读取一个包含反斜杠的字符串。出于某种原因,我无法在字符串中传递反斜杠。 我的字符串是用户名,其格式为:Domain\username 我将它发送到表中:
SqlCommand scomm = new SqlCommand();
SqlDataReader sr;
string nameOfUser = "Domain\userName";
scomm.CommandText = "SELECT * FROM tableOfUsers WHERE UserName=" + nameOfUser;
sr = scomm.ExecuteReader();
在调试过程中,我可以看到另一个反斜杠被添加为转义字符,但是我不知道 sql 部分发生了什么,也不知道为什么会抛出异常。我尝试使用 @ 但这也无济于事。 如果您能提供给我任何帮助,我将不胜感激。
最佳答案
使用SqlParameter
。
string nameOfUser = @"Domain\userName";
scomm.CommandText = "SELECT * FROM tableOfUsers WHERE UserName=@username";
scomm.Parameters.Add("@username",SqlDbType.VarChar,30).Value=nameOfUser;
//open the connection
SqlDataReader sr=scomm.ExecuteReader();
if(sr.Read()) // use while loop when one or more exists
{
Console.WriteLine(sr["columnName"] + " or use column ordinal : " + sr[0]);
}
关于c# - 无法从 sql 表中读取包含反斜杠的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8798250/