以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]求一个代码思路  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187142)

--  作者:foxuser_6666
--  发布时间:2023/6/26 9:16:00
--  [求助]求一个代码思路
如题   现在我想通过代码向外部数据源(sqlserver)添加一张表  随后按照单元格去添加数据  有办法可以实现吗?还是说必须先有行  才能改列?
因为我昨天问道添加的表如果没有引用就需要通过sql来操作   那是否我必须按照sql的逻辑来添加数据呢?
我自己写了代码   但是报错   故而求指导


--  作者:有点蓝
--  发布时间:2023/6/26 9:25:00
--  
看SQLcommand里ExecuteReader的示例五

示例五

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

Dim cmd As new SQLCommand
cmd
.ConnectionName = "数据源名称"
Dim
 dt As DataTable
cmd
.CommandText = "Select * From {表A}"
dt
 = cmd.ExecuteReader(True\'记得将参数设置为True
dt
.DataRows(0)("第一列") = 123
dt
.DataRows(1).Delete()
dt
.Save()
DataTables
("表A").Load() \'重新加载表A,看看值是否已经变化


--  作者:foxuser_6666
--  发布时间:2023/6/26 10:03:00
--  
好的  感谢
--  作者:foxuser_6666
--  发布时间:2023/6/26 10:41:00
--  
麻烦请教一下   我代码写的有问题   帮忙看一下思路正确嘛   感谢
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2023/6/26 10:59:00
--  
有什么问题,提示什么错误?

新增的表默认是空的,要使用addnew新增行

--  作者:foxuser_6666
--  发布时间:2023/6/26 11:22:00
--  
报错如图所示   请问addnew()应该写在哪里?
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2023/6/26 11:35:00
--  
麻烦贴代码文字,不要贴图片
--  作者:foxuser_6666
--  发布时间:2023/6/27 8:22:00
--  
好的  我刚才粘了代码   但是点击发表的时候提示我错误  请重试   是服务器的问题吗  还是哪里的问题
--  作者:有点蓝
--  发布时间:2023/6/27 8:30:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=69632
--  作者:foxuser_6666
--  发布时间:2023/6/27 8:31:00
--  
好的   以下是代码片段
Dim Builder As New ADOXBuilder("sqlserver") \'要指定数据源名称
Dim tb2 As ADOXTable
        tb2 = Builder.NewTable(bm & "_利润表") \'创建表
        For i As Integer = 1 To 15
            With tb2
               .AddColumn("第" & i & "列" ,ADOXType.String, 50)
            End With
        Next

        Builder.AddTable(tb2) \'增加表

        Tables(bm & "_利润表").AddNew(30)

        cmd.CommandText = "Select * Fro m {" & bm & "_利润表}"
        lrtb = cmd.ExecuteReader(True) \'记得将参数设置为True
        
        Output.show(1111)
        lrtb.DataRows(0)("第1列") = "利 润 表-考核利润(预创业)"
        Output.show(22)
        lrtb.DataRows(1)(0) = "公司名称:" & bm