0

我有一个带有数据库的服务器客户端程序。客户端向服务器发送数据,服务器将数据保存到数据库中。现在的问题是,如果多个客户端同时向服务器发送数据,而服务器要写入数据库,会不会有问题?

例如:client1 调用一个方法:

client.save_data(data1);

client2 调用一个方法:

client.save_data(data2);

服务器尝试:

save_data(data){
  sql.insert_intoDB(data);
}
insert_intoDB(data)
{
  //not real code, just to show what i mean
   query = "insert into tablename values "+data;
   query.execute;
}

在 c# 中处理这个问题的好方法是什么?或者根本就没有风险?

thx,最好的问候。

4

2 回答 2

1

如果您只是插入数据,则不会出现并发问题。插入操作按照数据库引擎接收到的顺序进行排队和插入,该顺序始终是线性的。

于 2012-08-29T23:25:11.930 回答
1

会不会有问题?

一般来说,是的,这个问题被称为并发。不同的数据库以不同的方式处理这个问题。在处理更新而不是插入时,通常更值得关注。

我认为大多数(如果不是全部)数据库引擎会单独处理每个插入,因此您不必担心。但是,为了安全起见,您应该始终使用事务,以便在出现任何问题时可以回滚。

如果您使用 C#,我建议您使用TransactionScope 。

于 2012-08-29T23:29:36.123 回答