问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c# 如何优化代码,使运行速度变快

发布网友 发布时间:2024-08-07 03:50

我来回答

4个回答

热心网友 时间:2024-08-21 03:30

存储过程,序列化DATASET,优化循环

热心网友 时间:2024-08-21 03:34

循环造成的

热心网友 时间:2024-08-21 03:33

为什么要循环读取?
如果可以的话,可以一次全都把需要的数据都取出保存到DataSet中,然后操作DataSet就可以了!

热心网友 时间:2024-08-21 03:37

1 循环读取和写入都会造成速度慢的现象
2 读取可以一次性读到DateTable然后循环访问DateTable的Rows集合
写入可以使用事务 批量写入 出错还可以回滚 可以使用循环把构造的SQL语句放到数组或ArrayList然后在事务中使用
有关事务的用法可以上网搜索 很简单 给你个例子
#region ExecuteNonQueryMulti
/// <summary>
/// 执行多条sql
/// </summary>
/// <param name="sqls">sql集合</param>
/// <returns>执行结果</returns>
public bool ExecuteNonQueryMulti(System.Collections.ArrayList sqls)
{
bool bResult = false;
if (this.HasInitialCon())
{
conn = new SqlConnection(this.connectionString);
SqlCommand cmd = new SqlCommand();
SqlTransaction tran = null;
try
{
conn.Open();
tran = conn.BeginTransaction(IsolationLevel.RepeatableRead);
cmd.Connection = conn;
cmd.Transaction = tran;

int count = sqls.Count;
for (int i = 0; i < count; i++)
{
cmd.CommandText = sqls[i].ToString();
cmd.ExecuteNonQuery();
}

tran.Commit();
conn.Close();

bResult = true;
}
catch(SqlException err)
{
bResult = false;

if (conn.State == ConnectionState.Open)
{
if (tran != null)
{
tran.Rollback();
}
conn.Close();
}

if (IsShowError)
{
throw err;
}
}
}
return bResult;
}

热心网友 时间:2024-08-21 03:35

1 循环读取和写入都会造成速度慢的现象
2 读取可以一次性读到DateTable然后循环访问DateTable的Rows集合
写入可以使用事务 批量写入 出错还可以回滚 可以使用循环把构造的SQL语句放到数组或ArrayList然后在事务中使用
有关事务的用法可以上网搜索 很简单 给你个例子
#region ExecuteNonQueryMulti
/// <summary>
/// 执行多条sql
/// </summary>
/// <param name="sqls">sql集合</param>
/// <returns>执行结果</returns>
public bool ExecuteNonQueryMulti(System.Collections.ArrayList sqls)
{
bool bResult = false;
if (this.HasInitialCon())
{
conn = new SqlConnection(this.connectionString);
SqlCommand cmd = new SqlCommand();
SqlTransaction tran = null;
try
{
conn.Open();
tran = conn.BeginTransaction(IsolationLevel.RepeatableRead);
cmd.Connection = conn;
cmd.Transaction = tran;

int count = sqls.Count;
for (int i = 0; i < count; i++)
{
cmd.CommandText = sqls[i].ToString();
cmd.ExecuteNonQuery();
}

tran.Commit();
conn.Close();

bResult = true;
}
catch(SqlException err)
{
bResult = false;

if (conn.State == ConnectionState.Open)
{
if (tran != null)
{
tran.Rollback();
}
conn.Close();
}

if (IsShowError)
{
throw err;
}
}
}
return bResult;
}

热心网友 时间:2024-08-21 03:38

为什么要循环读取?
如果可以的话,可以一次全都把需要的数据都取出保存到DataSet中,然后操作DataSet就可以了!

热心网友 时间:2024-08-21 03:37

循环造成的

热心网友 时间:2024-08-21 03:36

存储过程,序列化DATASET,优化循环
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
社保到期了还有时效吗 2023年河北退休人员认证时间 社保待遇资格认证有效期怎么认证 ...语法How long does it take you to get to school? 此句中“it... 海信电视初始设置后无信号 设置海信电视恢复出厂设置搜不到电视信号 海信一族电视大锅恢复设置没信号怎么? 如何用c程序读取txt文件? 成都膨胀螺丝型号 云南农信个人如何开通手机银行 idea注释的快捷键(idea注释的快捷键设置) 童年第四章概括童年第四章概括内容 童年第三四章摘抄一段失火场景的描写(50字左右_百度问一问 中国刑法合伙倒卖车船票罪怎么立案? 钢结构的屋面防水施工贵不贵 钢结构屋面系统 随身WiFi有什么用处吗? 宝可梦朱紫连接交换报错 在家如何使用烤箱制作披萨? 什么是淘宝商家白名单? 上下班工伤认定条件是怎样的 上下班工伤认定标准是什么? 下班后返回单位受伤构成工伤么,怎么认定? 员工下班路上工伤怎样认定 王国之心3隐藏BOSS怎么打介绍_王国之心3隐藏BOSS怎么打是什么 王国之心3小游戏奖杯获取攻略介绍介绍_王国之心3小游戏奖杯获取攻略介 ... 王国之心3键刃墓场收集攻略介绍_王国之心3键刃墓场收集攻略是什么 王国之心3收集海格力斯人偶攻略介绍_王国之心3收集海格力斯人偶攻略是... 王国之心3科洛那王国宝箱攻略介绍_王国之心3科洛那王国宝箱攻略是什么... 王国之心3旧京山收集攻略介绍_王国之心3旧京山收集攻略是什么_百度知 ... 老板让股东撤股是可以的吗 股东能撤股吗,作为股东应该如何撤股? 公司在亏损的情况下,股东可以撤股吗? ...%,我和另外的人个占25%。 现在想撤股,他们说要扣折旧费 G1362列车时刻表 G1362列车2了不车厢12A靠窗吗 虹桥火车站g1362出站口到26号检票口怎么走 已经确权的房子被强拆怎么办? 农村土地拆迁款如何分配 农村宅基地房屋拆迁补偿款是否可以继承 作业治疗包括哪些 word文档里面怎么知道有多少字word文档里面怎么知道有多少字了 生姜蜂蜜擦脸能祛斑吗? 百度网盘超出的空间怎样收回啊? 常吃黑枸杞的好处 买卖三无产品构成什么罪 三无产品造成人员伤亡的是什么罪 销售三无产品罪的处罚标准是怎样的 你能接受你对象跟异性同事一起单独吃饭吗 旅游团中有单男单女状况怎么办