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,优化循环