首页新闻找找看学习计划

asp.net将视图部分数据同步到另一个数据库的表里,怎么快速同步

0
悬赏园豆:50 [已解决问题] 解决于 2019-11-28 10:35

服务器上有一张视图,将视图里的部分数据同步到本地数据库表里,当有数十万条数据时,同步特别慢,请问正确的思路是什么:
string sql = "select * from V_BSDT_STUDENT"; //服务器数据库里的视图
DataTable dt = bll.SelectOracleSql(sql); //获取它的所有数据
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow row = dt.Rows[i];
DataTable ds = bll.SelectbySql("select StudentID from WC_Student where StudentID='" + row["XH"].ToString().Trim() + "'"); //本地数据库表里是否存在这条数据
if (ds.Rows.Count > 0)//有则更新
{
string updateSql = "update WC_Student set " +
...
"where StudentID='" + row["XH"].ToString().Trim() + "'";
bll.RunbySql(updateSql);
}
else //没有则增加
{
DataRow newRow;
newRow = bll.SelectbySql("select * from WC_Student where 1=2").NewRow();
...
bll.Insert(newRow, "WC_Student");
}

            }
        }
TenFly的主页 TenFly | 初学一级 | 园豆:113
提问于:2019-11-27 11:56
< >
分享
最佳答案
1

可以先用 SqlBulkCopy 插入到临时表中,然后批量更新数据就好了

收获园豆:50
华临天下 | 小虾三级 |园豆:1295 | 2019-11-27 14:06
其他回答(1)
0

SqlBulkCopy 比你这样快多了,楼上正解

Cgrain | 园豆:719 (小虾三级) | 2019-11-28 08:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册