(快速浏览杰哥分享过的所有经验汇总,点击跳转) |
|
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,说明能加载
===============================================================
顺便总结以前分享过的帖子,方便大家学习
[此贴子已经被作者于2024/6/5 18:06:49编辑过]