比如某外部数据表有一列为:序号,那么如何判断这一外部数据表有“序号”这一列,请予指导
好像你得加载表,
记得有一个获取某数据源所有表名的方法,你可以用一下。
为了快点,你可以只加载少部分行。
加载了后,想查这个就方便了。
[此贴子已经被作者于2010-8-27 14:45:30编辑过]
你说的不是我想要的答案。我要的是:在写一段代码,需要判断外部数据表是否有某列,这时候这个数据表还未加载。请老大或哪位大侠帮忙!
Dim cmd As New SQLCommand
cmd.ConnectionName = "test"
cmd.CommandText = "SELECT * From {表名} Where 主键 < 0"
If cmd.ExecuteReader().DataCols.Contains("序号") Then
MessageBox.Show("有")
End If
[此贴子已经被作者于2010-8-27 18:36:43编辑过]
以下是引用cxabc123在2010-8-28 14:49:00的发言:
Dim cmd As New SQLCommand
cmd.ConnectionName = “数据源名称”
cmd.CommandText = "Select * From [" & 数据表名 & "] "
If cmd.ExecuteReader().DataCols.Contains(r("列名")) Then
MessageBox.Show(r("列名") & " 列已经存在!")
Return
End If
我试成功了,感谢指点
最好加上主键的条件,不然如果这个外部表数据量大会影响速度的。
我没有明白Where 主键 < 0是什么意思,能说详细一点吗,为什么要小于0
[此贴子已经被作者于2010-8-30 8:17:47编辑过]
cmd.CommandText = "Select * From [" & 数据表名 & "] "
在这一段代码中应该是{},还是[],帮助中有一处是[],也可以执行,但在其他地方都是{}。哪一个更正确。
cmd.CommandText = "Select * From [" & 数据表名 & "] "这一段冷不冷改成cmd.CommandText = "Select * From { 数据表名}",但是改成这样又不能执行,我重视不理解。