基本上它是一种修补机制
以下是我正在做的事情:
此序列导致SQL Connection
超时问题,因为下载文件需要一些时间。
问题是我只能在下载文件后才提交事务,而不是在此之前。
将代码写入C#
。使用的数据库是SQLCE
以下是代码的一部分:
SqlCeConnection conn = new SqlCeConnection("ConnectionString");
conn.Open();
SqlCeTransaction ts = conn.BeginTransaction();
//A method call executes all the methods that with parameters
(string sqlQuery, ref SqlCeConnection conn, SqlCeTransaction ts)
{
SqlCeCommand cmd = new SqlCeCommand();
cmd.Connection = conn;
cmd.Transaction = ts;
cmd.CommandText = sqlQuery;
cmd.ExecuteNonQuery();
}
//A method call downloads the file of 15 to 20 MB
//A method executes a select query that returns the version of the software by using same SQL connection.
//The above query gives the error of SQl connection timeout
ts.Commit();
conn.Close();
任何人都可以帮我解决问题
答案 0 :(得分:0)
手动设置命令超时。
cmd.CommandTimeout = 180;
此示例将超时设置为180秒(3分钟)
答案 1 :(得分:0)
这就是我所做的。
我将相同的连接和事务对象传递给正在下载文件的方法。 在该方法中,我在循环中执行了一个简单的选择查询,其中文件被下载。这有助于保持连接和事务处于活动状态。 在这里,即使您的互联网连接速度很慢,也不会影响每个循环中的SQl查询被触发并保持连接活动。