每次查询的结果是不是都有值啊?
建议你try catch一下 catch到错误的时候把 dt 写到日志里分析分析

解决方案 »

  1.   

    dt=si.GetSoDetailInfo(fdClNo); 
    dtLog=si.GetLog(fdClNo);
    CLNo.Text=dt.Rows[0]["fdClNo"].ToString();你有3个地方用到fdClNo 具体哪行出错呢?
    去看子函数
      

  2.   

    是在 CLNo.Text=dt.Rows[0]["fdClNo"].ToString();这一行出错.
    有时侯还会出现这种情况,原本查询A部门的资料,但出现的结果却是B部门的资料,跟踪进去,查询条件的确是A部门的.    出现这种情况后,有时过几分钟就自动恢复正常了.
      

  3.   

    你试一下用foreach,这个比较稳定
      

  4.   

    foreach,怎么用呢?我现在是只有一行记录,要把里面的值取出来.
      

  5.   

    跟踪一下sql执行情况 看sql 执行的具体语句和结果
      

  6.   

    Sql语句是没有问题的,把具体Sql语句放到Sql Server 的查询分析器执行都是正常的,并且,郁闷的是,过一段时间它自己就恢复正常了.
      

  7.   

    问题是否是缓存问题?检查一下.另外你为什么不在ServerItem类的Dispose()方法中进行ServerItem.connection.Close()操作呢,而需要在用using语法的同时还需要自己Dispose()?
      

  8.   

    在处理的时候,已经在ServerItem类的Dispose()方法中进行ServerItem.connection.Close()了
    ,曾经考虑是不是using这种方法不稳定,没能及时关闭数据库连接,所以又在上面的using 里增加了si.connection.Close(); 在ServerItem类的Dispose()方法中是先判断数据库连接状态是否关闭,如是Open,则close.     在什么地方检查缓存呢?这道没有做
         
         为了优化系统,先前从数据库中读取系统里一些数据的配置,改为从生成好的xml里读取.
    虽多方设法,仍未能解决.
         恳请各方高手指教.谢谢
      

  9.   

    si 被清除了
    当然会有问题
    问题是:
    dt指向NULL了
      

  10.   

    建议
     using(ServerItem si=new ServerItem(ConnStr))
    {
    dt=si.GetSoDetailInfo(fdClNo); 
    dtLog=si.GetLog(fdClNo);
    si.connection.Close();  
      
    if(dt.Rows.Count>0)
    {   
    CLNo.Text=dt.Rows[0]["fdClNo"].ToString();
    SoNo.Text=dt.Rows[0]["fdSoNo"].ToString();
    BusinessNo.Text=dt.Rows[0]["fdFactoryNo"].ToString();
     }
    }
    如果还有问题 就在GetSoDetailInfo(fdClNo);中了
      

  11.   

    从数据库里查询结果后,存放到DataTable 里,不是就和数据库连接没有问题了吗?
    直接操作本地的DataTable.对于建议:
       建议
     using(ServerItem si=new ServerItem(ConnStr))
    {
    dt=si.GetSoDetailInfo(fdClNo); 
    dtLog=si.GetLog(fdClNo);
    si.connection.Close();  
      
    if(dt.Rows.Count>0)
    {   
    CLNo.Text=dt.Rows[0]["fdClNo"].ToString();
    SoNo.Text=dt.Rows[0]["fdSoNo"].ToString();
    BusinessNo.Text=dt.Rows[0]["fdFactoryNo"].ToString();
     }
    }
    等同于是把显示记录放在Using 内部,可我是在using外部就定义好了DataTable,这样有什么影响吗?
      

  12.   

    在运行的过程中,出现不稳定的现象:出现下面的错误信息.   列“fdClNo”不属于表 QueryResult。    可事实上是有fdClNo这个字段,并且也是有值的-------------------------------------------------GetSoDetailInfo(fdClNo);
    这个方法返回的表结构不对
    检查这个方法
    肯定是这里的问题
      

  13.   

    看看你返回的表里所有的Columns都是什么
    应该就是问题所在了
      

  14.   

    如果是表结构不对,我查询语句里写的就是fdClNo,这边也获取dt.rows[0]["fdClNo"].ToString()假如说表结构有问题,应该总是报错才对呀,可停一会儿它自己就又好了.这是让我郁闷的
      

  15.   

    GetSoDetailInfo(fdClNo)
    是不是返回的 dt 是静态的哦。