本人做应用程序需要利用ADO.NET对数据库进行操作,这样说吧,我有一个数据库操作类,其中的一个函数通过调用SQL语句返回需要的符合条件的信息。具体如下:
     public String[] ReturnTableContent(string strSql,string field)
      {
          DataTable mydt = new DataTable();
          DataSet myds = new DataSet();
          SqlDataAdapter MyAdapter = new SqlDataAdapter(strSql, MyConnection);
          MyAdapter.Fill(myds, "mytable");          mydt = myds.Tables["mytable"];
          MyAdapter.Dispose();
          num = mydt.Rows.Count;
          String[] content = new String[ num ];
          for (int i = 0; i < num; i++)
          {
              content [i] = mydt.Rows[i][field].ToString();
          }
          mydt.Dispose();
          myds.Dispose();
          return content;
      }   现在我觉得以前判断的条件有点复杂,因此我在数据库中相应表单中增加了一个字段,bit型的。使条件简单一些。但执行比如说这样的语句:
    "select text from Interprise_Recruitment  where ifsend = 0"
   
    Interprise_Recruitment为表单名ifsend 为新添字段名。我是在Microsoft SQL Server Management studio Express添加的字段。但运行到上面程序中的MyAdapter.Fill(myds, "mytable")处,出现错误:列名 'ifsend' 无效但我在Microsoft SQL Server Management studio Express中建立查询进行检测,就没有错误,显示查询出的信息。这是为什么?      谢谢大家!

解决方案 »

  1.   

       SqlDataAdapter MyAdapter = new SqlDataAdapter(strSql, MyConnection); 新添字段名'ifsend' 无效, 那么请检查你传进来的StrSql ;
      

  2.   


    SELECT DISTINCT  syscolumns.name AS Expr1, systypes.name AS Expr4,
    syscolumns.length AS Expr3, syscolumns.colid AS Expr2,syscolumns.colstat as Expr5
    FROM sysobjects INNER JOIN
    syscolumns ON sysobjects.id = syscolumns.id INNER JOIN
    systypes ON syscolumns.xtype = systypes.xtype
    WHERE (sysobjects.name = '" + TabName+"') AND (systypes.status <> 1) ORDER BY syscolumns.colid";
    @"SELECT b.name
    FROM (SELECT g.id, g.colid
            FROM sysindexes f, sysindexkeys g
            WHERE f.id = g.id AND f.indid = g.indid AND f.indid > 0 AND f.indid < 255 AND 
                  (f.status & 2048) <> 0) h RIGHT OUTER JOIN
          syscolumns b INNER JOIN
          sysobjects a ON b.id = a.id ON h.id = b.id AND h.colid = b.colid
    WHERE (a.id = OBJECT_ID('"+TabName+"')) AND (h.id IS NOT NULL)";
      

  3.   

    两个SQL..用来提取数据库信息的..
    第2个SQL用来判定谁是主键的.
      

  4.   

    不是,提取数据库中相应字段里的信息,比如:我需要一些符合条件的信息,里面存的是ntext类型的,我把它提出来赋值给变量,就是不想再用上面函数里的方法!
    很久未回复对不起大家啊!
    谢谢
      

  5.   

    LZ可以对这两个SQL进行封装阿..