//观点一,先取出数据库中已存在ID存入内存,再进行判断
//数据太多情况,内存爆炸
DateTable dt = ExcuteSQL('SELECT ID FROM TABLE')
//List为数据集,已经去重
foreach(var item in List){
//观点二,在for循环中根据ID查询是否已存在
//for循环执行数据库?没这么干过
DateTable dt = ExcuteSQL(string.format('SELECT ID FROM TABLE WHERE ID = {0}',item.ID))
//判断是否在dt中存在
...
bool ISContain
...
//不存在
if(!ISContain){
//加入事物SQL列表
SQLList.Add('INSERT INTO ........')
}
}
//执行事物
....
一个SQL语句不就完了,select count(*) from MAA where NO=‘1234-4567-8910’。看count的值是否是0,不是0 则打印这个值存在。难道前边连接数据库的也要rsdata.length()==0这样验证空??那要是出现null值呢。
改为:
if(rsdata.equals("")||rsdata == null){
stmt.executeUpdate(sql2)
}
吧。
这样做无论出现空值和null值能够捕获到的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)