把“SELECT DISTINCT name FROM 表名” 改成 “SELECT DISTINCT [name] FROM 表名”就不会出现问题了。我估计出问题的原因在于name字段列与关键字同名,呵呵,你试试看。

解决方案 »

  1.   

    我怀疑是sqlDataAdapter1和dataSet1设置上有问题!我以前曾写过而且通过了,但不知道这次为什么不通过?我个人理解:可能是dataSet1需要有主键值,因为 SELECT  DISTINCT  name  FROM  表名 中没有体现主键值,所以报错,不知道,那位知道如何设置一下,不让dataSet1 要求主键值呢?
    或是大家还有什么高招?
      

  2.   

    既然你是用了适配器(sqlDataAdapter),就不需要在执行Select语句了,也就是说:
    this.sqlDataAdapter1.SelectCommand.ExecuteNonQuery();//这句多余!!
    :)
      

  3.   

    this.sqlDataAdapter1.SelectCommand.ExecuteNonQuery();//这句多余!!
    是什么意思,能说详细点吗?谢谢!
      

  4.   

    也就是说,当执行this.sqlDataAdapter1.Fill(this.dataSet11);的时候,自动执行那条Select语句,所以你不必自己调用,至于错误的原因我也不大明白。反正和这个有关。
      

  5.   

    SqlCommand cmd = new SqlCommand(thesql,conn);
     SqlDataReader theresult = cmd.ExecuteReader(CommandBehavior.CloseConnection);
      

  6.   

    是不是你的数据有空值,你试试把sql语句改成:
    SELECT DISTINCT  isnull([name],' ') FROM 表名
      

  7.   

    我发现可能是 dataSet11 控件要求有主键,有那位知道如何让 dataSet不要求主键呢?
      

  8.   

    试试,数据表主键采用SQL server自增型。