关于多线程的数据操作

a291410855 2011-06-30 11:24:17
 
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}



以前写数据操作都是这样。
这样的函数的多线程里面会不会出现问题?(两个或以上的线程都执行到这里)

另外我又一个地方不理解不透(非多线程):

当我两个客户端同时执行到这里的时候会不会也出现问题?
...全文
47 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
criedshy 2011-06-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 a291410855 的回复:]

引用 1 楼 criedshy 的回复:

多线程的话,会出问题,所以要控制并发

第二种情况,不会出现问题,因为每个请求都是独立的,不会相互干扰。

第二种情况的不会出现问题我也有所知晓,可就是不理解。都每个用户都是独立的。还多线程里不是呢?
比较说在new SqlCommand的时候两个用户都有自己的SqlCommand的实例吗?那这个对象的实例保存的在什么地方呢?
[/Quote]

每个用户都有自己的实例,除非 你把它定义成全局静态的
a291410855 2011-06-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 criedshy 的回复:]

多线程的话,会出问题,所以要控制并发

第二种情况,不会出现问题,因为每个请求都是独立的,不会相互干扰。
[/Quote]
第二种情况的不会出现问题我也有所知晓,可就是不理解。都每个用户都是独立的。还多线程里不是呢?
比较说在new SqlCommand的时候两个用户都有自己的SqlCommand的实例吗?那这个对象的实例保存的在什么地方呢?
md5e 2011-06-30
  • 打赏
  • 举报
回复
并发要在数据库里加一个时间戳的字段
criedshy 2011-06-30
  • 打赏
  • 举报
回复
多线程的话,会出问题,所以要控制并发

第二种情况,不会出现问题,因为每个请求都是独立的,不会相互干扰。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧