从数据库中检索特殊字符到c#

本文关键字:特殊字符 检索 数据库 | 更新日期: 2023-09-27 18:07:08

我有一个数据在我的数据库'A Plus 18" Stand Fan'没有单引号。我使用nvarchar来保存数据,但当我试图从数据库中检索它时,数据返回'A Plus 18'" Stand Fan'。我尝试使用WebUtility.HtmlDecodeHtmlUtility.Html.DecodeWebUtility.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();

            }

从数据库中检索特殊字符到c#

代码行string mod = "SELECT SUM(Quantity) as Quantity from vConsumables_Balance where Model ='" + model + "' AND Company = '" + companys + "' AND Status = 'Delivered'";显示您正在通过手动连接字符串创建SQL查询。我假设您在将数据插入数据库时也做了相同的操作,并使用了您自己的一些工具来转义某些字符。

那是个坏主意。您应该将所有查询更改为参数化查询。这将帮助你解决你可能遇到的其他问题:数字和日期的格式化,它也将提供一些防止SQL注入攻击的保护。

对于Status列,我建议使用表示枚举值的整数值而不是字符串。