从数据库中检索特殊字符到c#
本文关键字:特殊字符 检索 数据库 | 更新日期: 2023-09-27 18:07:08
我有一个数据在我的数据库'A Plus 18" Stand Fan'
没有单引号。我使用nvarchar来保存数据,但当我试图从数据库中检索它时,数据返回'A Plus 18'" Stand Fan'
。我尝试使用WebUtility.HtmlDecode
和HtmlUtility.Html.Decode
也WebUtility.UrlDecode
。有人能帮帮我吗?谢谢!
这里是我的代码,我从数据库中读取数据进行比较。"模型"是我需要修复的
for (int y = 0; y < dt.Rows.Count; y++)
{
model = dt.Rows[y]["ItemModel"].ToString();
string companys = "";
companys = dt.Rows[y]["Company"].ToString();
//getAMS(model, quan);
Utility a = new Utility();
string com = a.PO();
SqlConnection con = new SqlConnection(com);
SqlCommand read = con.CreateCommand();
SqlDataReader reader = null;
string stat = "Delivered";
string mod = "SELECT SUM(Quantity) as Quantity from vConsumables_Balance where Model ='" + model + "' AND Company = '" + companys + "' AND Status = 'Delivered'";
try
{
con.Open();
read.CommandText = mod;
reader = read.ExecuteReader();
}
catch (System.Exception)
{
Console.WriteLine("Error");
}
while (reader.Read())
{
quan = reader.GetDecimal(0).ToString();
}
代码行string mod = "SELECT SUM(Quantity) as Quantity from vConsumables_Balance where Model ='" + model + "' AND Company = '" + companys + "' AND Status = 'Delivered'";
显示您正在通过手动连接字符串创建SQL查询。我假设您在将数据插入数据库时也做了相同的操作,并使用了您自己的一些工具来转义某些字符。
那是个坏主意。您应该将所有查询更改为参数化查询。这将帮助你解决你可能遇到的其他问题:数字和日期的格式化,它也将提供一些防止SQL注入攻击的保护。
对于Status
列,我建议使用表示枚举值的整数值而不是字符串。