0

我用 C# 创建了一个 windows 窗体应用程序和一个数据库MS SQL server 2008 Express,我使用LINQ-to-SQL查询来插入和编辑数据。

该数据库位于带有Windows Server 2008 R2 (standard edition). 现在我的应用程序在五台不同的计算机上运行,​​并且用户通过活动目录进行身份验证。

向我报告的一项投诉是,有时当输入和提交不同的数据时,相同的数据不会出现在包含应用程序的列表中。我使用 try catch 块发送错误,但应用程序中没有出现错误;但数据只是消失了。

表记录的 id 是一个整数自增。因为我必须告诉他们输入的注册号,所以我使用以下代码:

try{
    ConectionDataContext db = new ConectionDataContext();
    Table_Registers tr = new Table_Registers();
    tr.Name=textbox1.text;
    tr.sector=textbox2.text;
    db.Table_Registers.InsertOnSubmit(tr);
    db.SubmitChanges();
    int numberRegister=tr.NumberRegister;
    MessageBox.Show(tr.ToString());
}
catch{Exception e}

我想知道我是否做错了什么,或者您是否知道网络上的任何文章讲述了如何在 MSSQL Server 数据库中插入来自不同客户端的数据,请告诉我。

谢谢。

4

1 回答 1

1

这就是数据库服务器所做的 “同时从不同的客户端插入数据”。

您可以做的一件事是考虑“交易”:

您可以(并且应该!)做的另一件事是通过使用“存储过程”确保在服务器上完成尽可能多的工作:

您还应该检查 SQL Server 错误日志,尤其是潜在的死锁。您可以在 SSMS GUI 或 SQL Server 安装下的“日志”目录中查看这些内容。

但是您需要做的第一件事是确定到底发生了什么。由于您只有 MSSQL Express(这不是生产使用的好选择!),也许最简单的方法是创建一个“日志”表:每次在真正的表,看看东西是否“丢失”(即日志表中的整体比数据表中的多)。

于 2012-06-16T02:47:32.637 回答