在我的代码里,有很多地方读、写SQLSERVER2005数据库中的表格的信息,在我一直编译的机器上均正常,但是在另外一台电脑上也大多正常,只是在所有用datagridview读数据库中某个表格信息时(在该应用软件中此功能叫“明细表”功能),出现如下错误提示,datagridview中的信息为空。
我的问题是,为什么两台电脑上的表现不一样?是不是不正常的那台电脑上的SQLSERVER设置有问题,但又为什么在这台电脑上其他读写数据库的功能都正常,唯独只有再用datagridview读数据库中某个表格信息时(在该应用软件中此功能叫“明细表”功能),出现错误?该功能具体实现是这样的:datagridview的数据源是数据库里的zcxIncome表格,但是呢?zcxIncome表格名是动态的,即随登录用户名的改变而改变,例如zcx就是用户名,由于这种动态变化性,我这样处理,先用如下sql语句:
cmd.CommandText = string.Format("select * into Income from " + _LogedUserName + "Income");
把zcxIncome的信息全部“复制”到Income里,然后再指定datagridview的数据源为Income。在我编译的机器上明细表功能得以正确的实现,但是在出问题的机器上出现如上错误,我在出问题的机器上打开sqlserver2005企业管理器打开Income表格,发现Income为空,正常情况是有内容的。非常费解!请高手指点一二,在线等!

解决方案 »

  1.   

    其实想看是不是数据库问题很简单,相同的程序在2个机子上测试下,连接同一个数据库,如果没有问题,那么就说明那个数据库有问题,然后打开SQL2005 配置工具 看一下那台的配置就可以。还有一种可能就是该登录用户的明细信息为空。
      

  2.   

    LS正解,可以判断是否是数据库问题。另,可以显示一下cmd.CommandText的内容,看是不是这儿出问题了。PS:
    cmd.CommandText = string.Format("select * into Income from " + _LogedUserName + "Income"); 
    用法有点问题,虽然出来的结果一样。
    cmd.CommandText = string.Format("select * into Income from {0}Income", _LogedUserName); 
    或:
    cmd.CommandText = "select * into Income from " + _LogedUserName + "Income"; 
      

  3.   

    我的数据库服务器就是LOCAL本机,两台机器是两个独立的服务器。两者之间没有任何连接。