Foxtable(狐表)用户栏目专家坐堂 → ExecuteReader的疑惑


  共有6652人关注过本帖平板打印复制链接

主题:ExecuteReader的疑惑

帅哥哟,离线,有人找我吗?
不倒的翁
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
ExecuteReader的疑惑  发帖心情 Post By:2013/4/24 13:29:00 [只看该作者]

ExecuteReader有一个可选参数,如果设置为True,那么生成的DataTable不仅可以修改,还可以保存。
新建一个文件,在命令窗口测试下面的代码,会在A的第一行的第一列写入123:

Dim cmd As new SQLCommand
Dim
dt As DataTable
cmd
.CommandText = "select * From {A}"
dt = cmd.ExecuteReader(
True) '记得将参数设置为True
dt
.DataRows(0)("第一列") = 123
dt.Save()

DataTables(
"A").Load() '重新加载表A,看看值是否已经变化

如果以上代码改变为

Dim cmd As new SQLCommand
Dim
dt As DataTable
cmd
.CommandText = "select * From {A}"
dt = cmd.ExecuteReader(
True) '记得将参数设置为True

Dim dr As DataRow = dt.DataRows(0)
dr("第一列") = 123
dr.Save()

提示找不到""的DataTable

是不是不能用Dim dr As DataRow = dt.DataRows(0)定义???

既然Dim dt As DataTable
按照帮助中前期的指导写基础代码,很多人容易写成Dim dr As DataRow = dt.DataRows(0)

会误导哦,希望帮助中对这部分的说明详细些。

希望不是BUG。。。。

=====================无敌分割======================================

看了下自己项目中的代码。

如果:

Dim cmd As new SQLCommand
Dim
dt As DataTable
cmd
.CommandText = "select * From {XX表}"
dt = cmd.ExecuteReader(
) 'True参数不设置,就是原来2012中的代码写法。

Dim dr As DataRow = dt.DataRows(0)
这样能直接引用dr("XX列")的值。

而2013中dt = cmd.ExecuteReader(True) '加上True参数

Dim dr As DataRow = dt.DataRows(0)

引用的dr("XX列")的值都是“空”的。。。。

[此贴子已经被作者于2013-4-24 13:55:59编辑过]

 回到顶部
总数 27 1 2 3 下一页