none
在添加新闻的时候不定时出现乱码,并伴有INSERT INTO 字样 。 RRS feed

  • 问题

  • &??? ????UPDATE [Arti2笔(含)以上未结清住房贷款

    以上是出现乱码的一个现象。

    然后说说我的系统,我的系统是采用七层架构写的,采用传统的工厂模式,中间有一层使用了缓存和反射。

    主要代码是:

            /// <summary>
            /// 创建对象或从缓存获取
            /// </summary>
            /// <param name="AssemblyPath">程序集名称</param>
            /// <param name="ClassNamespace">指定类的命名空间</param>
            /// <returns></returns>
            public static object CreateObject(string AssemblyPath, string ClassNamespace)
            {
                object objType = DataCache.GetCache(ClassNamespace);//从缓存读取
                if (objType == null)//判断是否NULL
                {
                    try
                    {
                        objType = Assembly.Load(AssemblyPath).CreateInstance(ClassNamespace);//反射创建
                        DataCache.SetCache(ClassNamespace, objType);// 写入缓存
                    }
                    catch
                    { }
                }
                return objType;
            }

    还有就是在将数据存入数据库的时候有一个处理函数:

            private string escape(string ss)
            {
                //转换读取信息字符为字节数组
                byte[] bs = Encoding.Default.GetBytes(ss);
                //将字节数组转换为编码为GB2312的字符
                string Content = HttpUtility.UrlDecode(bs, 0, bs.Length, Encoding.Default);
                return Content;
            }

    此函数的作用是对字符串进行编码。

    还有数据库中这个字段设计的数据类型是nvarchar(MAX).

    我查了好久都不知道问题出在哪里,最让人头疼的是,这个问题是不定时出现的,所以做测试也检测不出来。

    2010年4月29日 5:39

答案

  • 乱码一般是编码问题,但UPDATE Inser to这种东西如果不是人为输入的,估计就是你拼Sql出了问题。

    最好是自己多跟踪几次看看。另外数据库操作尽量参数化。

    2010年4月29日 13:19
    版主

全部回复

  • 怎么没有人回答啊,自己先顶一个。
    2010年4月29日 6:10
  • 你可以在这个地方写个log,跟踪段时间看看吧。
    2010年4月29日 6:57
  • 你没有发问题代码  这么点代码 估计没有人能看得懂

     


    77138191 .net与asp.net qq群 9861961 silverlight群
    2010年4月29日 7:52
  • 乱码一般是编码问题,但UPDATE Inser to这种东西如果不是人为输入的,估计就是你拼Sql出了问题。

    最好是自己多跟踪几次看看。另外数据库操作尽量参数化。

    2010年4月29日 13:19
    版主
  • 建议很不错,采纳了。

    原来的这套系统是放在windows server 2008服务器上的,后来把他放到windows2003服务器上,就再也没有出现过这种情况了。

    2010年6月9日 7:21