我现在遇到的问题是这样的:
我在win7环境下开发的C#,Winfrom程序,现在要在XP系统下运行,我的程序中有一个datagridview控件,每隔5秒它就会刷新数据,在win7环境下运行的好好的,把可执行文件和.netFramework4.0拷到xP系统下,数据很多,所以就会有滚动条
现在我在xp系统下运行,当把滚动条往后拖时,比如:此时程序就报错:我的datagridview控件绑定数据的程序
  private void Information()
        {
            string ls_Sqlstr = "select * from EncTable";
            DataSet ds = DataBase.GetDataSet(ls_Sqlstr,connString);  
            dataGridView1.DataSource = ds.Tables[0];
                          
        }这是为什么呀,我在win7下运行时就没有错,可是一到XP系统下就报错,这是为什么呀?快急死了,公司生产上要用这个程序,请求各位路过的大神帮帮看看怎么回事,小弟感激不尽!c#datagridviewwin7xp

解决方案 »

  1.   

    难道在XP上面和WIN7上面的数据不一样?
    你刷新数据的时候,要先把原来的绑定的数据取消掉,在重新绑定。
      

  2.   

    字面意思是
    2556 超过了最大值最小值限制发生于ScrollBar.set_Value(Int32 Value)
    你的 ScrollBar 上有没有事件?
    你的第三方控件是否有 limit 的限制?
    问题应该不是出在数据绑定上
      

  3.   

    try
    {}
    catch()
    {} 屏蔽掉 (取巧的做法 )问题分析:你在移动滚动条时候应该触发了某个事件
      

  4.   

    这是为什么呀,我在win7下运行时就没有错,可是一到XP系统下就报错,这是为什么呀?
    这多半是由于你的代码不严密造成的。如果你想探个究竟,我建议你在出问题的那台机器上面装个vs2008,然后设置断点debug运行。遇到你图示的错误时,会自动在出错的代码处中断的。
      

  5.   

    你可以通过远程调试来查看你问题出现的代码的,远程调试参考:
    http://www.cnblogs.com/2018/archive/2010/11/08/1871765.html
      

  6.   


    刷新数据的时候,要先把原来的绑定的数据取消掉,在重新绑定,什么意思呀,
    绑定数据我调用下面的函数
    private void Information()
            {
                string ls_Sqlstr = "select * from EncTable";
                DataSet ds = DataBase.GetDataSet(ls_Sqlstr,connString);  
                dataGridView1.DataSource = ds.Tables[0];
                              
            }
      

  7.   

    ScrollBar.Maximum默认值是100。你可以按照需要设大一点。