Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共50 条记录, 每页显示 10 条, 页签: [1] [2][3][4][5]
[浏览完整版]

标题:[总结分享]异步里里DataTable能用Find和不能用SqlFind,1小心被坑,2不要滥用异步!并附上实战项目里,BS前后端分离下的接口请求平均耗时统计

1楼
chen37280600 发表于:2021/2/24 9:59:00

(快速浏览杰哥分享过的所有经验汇总,点击跳转


 1.异步的DataTable不能用SQLxxx
所有Sqlxxx都不能用,例如

//内部函数
Dim fr As DataRow = DataTables("ItemInfo").SqlFind("a=1")

经过测试:
在同步里,以上执行100次不出错
在异步里,大约有90次是fr为Nothing。肯定是因为SqlFind里面有共有变量,导致返回出问题

有人问:为什么有时候我异步里DataTables("xx").SqlFInd并没有报错呢?


以下内容只有回复后才可以浏览


还是那句话,不要滥用异步!线程创建要250ms,然后这个SqlCmd创建表也要400ms。然而根据5个Web项目的实测统计,大部分的响应请求都在100-200ms之间


此主题相关图片如下:微信截图_20210224095804.png
按此在新窗口浏览图片

此主题相关图片如下:微信截图_20210224111229.png
按此在新窗口浏览图片



2.异步的DataTable可以用Find之类

//内部函数
Dim fr As DataRow = DataTables("ItemInfo").Find("a=1")

经过测试:
在同步和异步里里,以上执行1000000次都不出错

本质上跟狐表文档里演示的读取全局PublicInteger一个效果,所以是没问题的

3.异步的DataTable还可以用LoadFilter之类

//内部函数
Dim cmd As New SqlCommand()
cmd
.ConnectionName = "Orders"
cmd.CommandText = "Sele ct * From Orders Where 1=2"
Dim dt as DataTable = cmd.ExecuteReader() 

dt.LoadFilter="1=1"
dt.LoadTop="100 percent"
dt.load(False)
Output.Show(dt.DataRows.Count)
'结果是不是0,说明能加载

===============================================================
顺便总结以前分享过的帖子,方便大家学习

联系QQ:2385350359

免费产品:

经验分享:



















[此贴子已经被作者于2024/6/5 18:06:49编辑过]
2楼
洮沙 发表于:2021/2/24 10:29:00
学习一下。
3楼
ajie5211 发表于:2021/2/24 13:53:00
这个高级啊,要学习一下。
4楼
aix 发表于:2021/2/24 14:16:00
 学习
5楼
天一生水 发表于:2021/2/24 17:11:00
学习
6楼
wei0769 发表于:2021/2/24 17:29:00
多谢分享
7楼
kgdce 发表于:2021/2/24 23:45:00
学习
8楼
venking999 发表于:2021/2/25 8:44:00
学习
9楼
浙江仔 发表于:2021/2/25 12:49:00
牛逼的大神
10楼
浙江仔 发表于:2021/2/25 12:51:00
这个服务器管理怎么做?
共50 条记录, 每页显示 10 条, 页签: [1] [2][3][4][5]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04688 s, 3 queries.