本人做应用程序需要利用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中建立查询进行检测,就没有错误,显示查询出的信息。这是为什么? 谢谢大家!
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中建立查询进行检测,就没有错误,显示查询出的信息。这是为什么? 谢谢大家!
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)";
第2个SQL用来判定谁是主键的.
很久未回复对不起大家啊!
谢谢