zoukankan      html  css  js  c++  java
  • 列不属于表--可能出现的问题总结

    异常的特点:  一:最大的特点是随机性。会突然报错,说不定是什么时候,有可能是你下一个点击,或者刷新一下页面之后,总之就是出现在数据库有联系的地方(查询,绑定数据控件时)。  二:报错的多样性。一报错后,千奇百怪的错误也就喷井式爆发,如“列不属于表”,“找不到表0”,“数据转换不成功”等,各种各样都有,但都是与数据库的数据有关。  三:持续时间比较短。很多页面报错后,刷新几次,或者是等一阵,又正常了,又可以使用了,但可能下一个点击,刷新,就又报错了  四:越多人使用,网络情况越差,就越频繁。我的系统在公司内部几个开发人员测试没有问题,但上线后,客户公司很多人用,就不断有这个错。而且,有几天网络比较好,就没有发生这错,我以为换了dbhelper已经搞掂了,但这几天又继续报错。

     1、

    法名: getList 异常信息: 列“productId”不属于表 Table lz我公司的网站不知道出现了多少次了,我以前也发过这样的帖子,不过那个时候我解决了 原因是全局变量的问题,因为我的sql是拼接的,而在一些方法中设置了那个全局变量的值, 然后第二次再调用其他方法,因为字段被设置过,所以错了,最后我把那个全局变量全部改成局部变量 就不会错了。

    NND,过一段时间又出现这样的问题,以为还是那个全局变量的问题,但是整个项目都没有全局变量了 现在还没有解决这个问题,但从我的日志记录来看,1、我的项目的数据层都有记录异常日志,在页面Global.aspx里也有记录异常日志。而且数据层都是记录日志后抛出的,所以正常情况数据层出现错误的话 那么就会有2个日志记录,一个是数据层的,该日志有记录参数的值,另一个是页面的,该日志直接记录异常信息,但是每次都只有页面的日志,所以怀疑与数据绑定有关

     2、

    SqlConnection 不要用全局或静态或单例模式 , 否则会出现不同进程进下共用connection的情况 , 特别是在web环境下 , 这将导致使用者获取的dataset不正确 , 从而引发上面我提出的问题 , 解决的方法是在需要做数据连接的地方new connection来使用 , 用后close , 这样就可以避免出现类似于 “xxxxx不属于表 Table ”等一系列的问题了。。。

     3、

    这个问题可能是由于并发的时候取的数据出了问题,很难找出问题,所以, 最后在这个经常容易出错的地方,加上try catch,然后在catch中加日志,把这个表的所有字段列出来,看到底是什么东西.

     4、

    到数据库里看看日志,出错就会影响应用池,要重新启动 是否是并发操作问题

     5、

    呵呵,应该是并发问题导致数据超时 你可以将数据库的连接池放大一些。

     6、

    建议LZ将上线的东西加上一个日志,因为上线的东西有时错误是很难跟踪的,那你看到的问题又不全面。。
    之前因为上线后网站出现问题,老大要原因,我说我也不知道,后来他才让我加日志跟踪。 这样以后出现问题都可以有据可查。我现在使用的是log4net

     7、

    先确定下,你报的这些错不属于连接超时所带来的问题。这些问题归根结底的原因还是在与你代码的问题。 1.加日志记录记录SQL语句和连接字符串
    2.查是否有垃圾数据 3.检查代码。(数据库连接,你的DBHELPER,查询语句)

    8、 数据库ADO.NET的连接操作不正确,我也遇到了这样的问题,原来的DBHelp类中用的是静态的一个Connection对象,现在不采用静态的,在使用时全部重新创建对象,问题解决。
    代码如下:   public static int ExecuteCommand(string safeSql)         {
                using (SqlConnection Connection = new SqlConnection(connectionString))             {

                    SqlCommand cmd = new SqlCommand(safeSql, Connection);
                    int result = cmd.ExecuteNonQuery();                 Connection.Close();                 return result;             }
            }

  • 相关阅读:
    VSTO不能创建OFFICE 文档项目的原因
    vs2016 创建 vsto excel 文件项目的一个问题
    一个开发原则:永远不要返回NULL
    客户为什么习惯变更需求
    从实际项目中的一个改进细节谈程序的易用性优化
    第三方系统打开EAFC的实现
    功能间(两个form)数据交互的编程方法
    关于行军模式大批量数据的审批的实现
    程序的升级发布管理
    转:从如何判断浮点数是否等于0说起——浮点数的机器级表示 献给依然 if ( double i ==0.00)的菜鸟们
  • 原文地址:https://www.cnblogs.com/dsliang/p/3439546.html
Copyright © 2011-2022 走看看