String sqlStr = "select UserID,Category,StartIP,TerminationIP,RoomDistribution,UserUuit from IPv4 " + whereStr + "order by UserID";
            SqlDataAdapter sda = new SqlDataAdapter(sqlStr, con);            DataSet ds = new DataSet();
            sda.Fill(ds);
            GridView1.DataSource = ds;
            this.GridView1.DataBind();
            GridView1.DataKeyNames = new string[] { "UserID" };
            con.Close();
        }总是出现列名 '单位' 无效,错误就直接指到sda.Fill(ds);这里。不知道怎么回事。其他运行都没错

解决方案 »

  1.   

    仔细检查sql语句,该空格的地方空格,调试看看sqlStr 的值
      

  2.   

    没有啊,而且现在数据库也打不开了,用sa登陆时会出现这样的异常情况:已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)
      

  3.   

    this.GridView1.DataBind();
    这里出错了
    你绑定的时候,GridView里面有一个列指定的 DataField名称为“单位”,将这个单位改一下就行
      

  4.   


    【控制面板】-【管理工具】-【服务】-【sql server brower】,启动就可以!
    检查一下代码
      

  5.   

    whereStr 里面包含了单位了嘛?数据表中有这个字段嘛?
      

  6.   

    一般出现这个报错 我第一时间去检查数据库中的字段名是不是和我sql语句中的字段名是否一致
      

  7.   

    那就跟踪调试一下代码,很快发现错误的。
    SQL语句错误或是数据库表结构问题,也有可能是字段赋值时类型错误