以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- ExecuteReader的疑惑 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=32019) |
||||
-- 作者:不倒的翁 -- 发布时间:2013/4/24 13:29:00 -- ExecuteReader的疑惑 ExecuteReader有一个可选参数,如果设置为True,那么生成的DataTable不仅可以修改,还可以保存。 Dim cmd As new SQLCommand 如果以上代码改变为 Dim cmd As new SQLCommand Dim dr As DataRow = dt.DataRows(0) 提示找不到""的DataTable 是不是不能用Dim dr As DataRow = dt.DataRows(0)定义??? 既然Dim dt As DataTable 会误导哦,希望帮助中对这部分的说明详细些。 希望不是BUG。。。。 =====================无敌分割====================================== 看了下自己项目中的代码。 如果: Dim cmd As new SQLCommand Dim dr As DataRow = dt.DataRows(0) 而2013中dt = cmd.ExecuteReader(True) \'加上True参数 Dim dr As DataRow = dt.DataRows(0) 引用的dr("XX列")的值都是“空”的。。。。 [此贴子已经被作者于2013-4-24 13:55:59编辑过]
|
||||
-- 作者:不倒的翁 -- 发布时间:2013/4/24 13:56:00 -- 顶一下。。。。客服午休还没结束。。 |
||||
-- 作者:不倒的翁 -- 发布时间:2013/4/24 14:33:00 -- 2:30咯。。等待回答。。。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/4/24 14:46:00 -- 没有道理的,做个小例子发上来测试看看。 |
||||
-- 作者:不倒的翁 -- 发布时间:2013/4/24 15:15:00 --
我这用的SQL2008,例子用的ACC数据库 提示空表 貌似值在ACC好像能正常引用。。。 但保存数据行就出错。 |
||||
-- 作者:Bin -- 发布时间:2013/4/24 15:22:00 -- .
|
||||
-- 作者:不倒的翁 -- 发布时间:2013/4/24 15:35:00 -- Dim cmd As New SQLCommand cmd.CommandText = "Select * From {tb1}" 为什么红字处不能用变量的呢???? 这表如果将“tb1”的表从FT中删除肯定出错。(指的是直接通过SQLCommand取得SQL上的数据,而不在FT中添加外部数据表) 因为SQLCommand本来就是为了加载外部表用的。 用DataTables("tb1")相当于在FT中已经加载的外部表保存的。
[此贴子已经被作者于2013-4-24 15:37:49编辑过]
|
||||
-- 作者:不倒的翁 -- 发布时间:2013/4/24 15:41:00 -- 表达能力不好。 不知道说的问题大家理解没。 忘谅解啊。。。 |
||||
-- 作者:Bin -- 发布时间:2013/4/24 15:42:00 -- 以下是引用不倒的翁在2013-4-24 15:35:00的发言:
Dim cmd As New SQLCommand cmd.CommandText = "Select * From {tb1}" 为什么红字处不能用变量的呢???? 这表如果将“tb1”的表从FT中删除肯定出错。(指的是直接通过SQLCommand取得SQL上的数据,而不在FT中添加外部数据表) 因为SQLCommand本来就是为了加载外部表用的。 用DataTables("tb1")相当于在FT中已经加载的外部表保存的。
[此贴子已经被作者于2013-4-24 15:37:49编辑过]
变量中的DataTable 和FT中的显示出来的表.不是一回事.也不是同一个东西吧.
|
||||
-- 作者:不倒的翁 -- 发布时间:2013/4/24 15:46:00 -- 以下是引用Bin在2013-4-24 15:42:00的发言:
BIN,我例子里的tb1表是外部表。你删除后用dt变量试试,出错的。 tb1外部表删除。用SQLCommand能获得ACC数据库的数据 但用cmd.ExecuteReader 定义Dim dr As DataRow = dt.DataRows(0) 但能取到值。 MessageBox.Show(dr("第一列")) |