LINQ到sql插入数据c#

LINQ到sql插入数据c#,c#,database,linq,linq-to-sql,C#,Database,Linq,Linq To Sql,我创建了一个函数,其目的是将数据添加到数据库中(我使用LINQtoSQL) 这是我写的代码 public static void Add(string Name, int Quantitty) { DataDataContext Database = new DataDataContext(); tests test = new tests(); test.Name = Name; test.Quantity =

我创建了一个函数,其目的是将数据添加到数据库中(我使用LINQtoSQL)

这是我写的代码

       public static void Add(string Name, int Quantitty) {

        DataDataContext Database = new DataDataContext();
        tests test = new tests();

        test.Name = Name;
        test.Quantity = (short)Quantitty;

        Database.tests.InsertOnSubmit(test);

        Database.SubmitChanges();
    }
我打开了我的应用程序,按下了调用此函数的按钮并关闭了应用程序,然后在VS中打开了表数据,但数据库中没有数据


我不明白我做错了什么。

您是否在调试模式下检查了一下是否有错误?顺便说一下,你应该有一个using语句和一个try-catch

编辑以添加代码示例

这将显示SubmitChanges中是否引发异常,同时使用确保调用dispose

using(var Database = new DataDataContext())
 {
    tests test = new tests();

    test.Name = Name;
    test.Quantity = (short)Quantitty;

    Database.tests.InsertOnSubmit(test);
    try
    {
        Database.SubmitChanges();
    }
    catch (ChangeConflictException e)
    {
        //report error, log error whatever...
    }
}

您是否已在调试模式下逐步执行以查看是否有任何错误?顺便说一下,你应该有一个using语句和一个try-catch

编辑以添加代码示例

这将显示SubmitChanges中是否引发异常,同时使用确保调用dispose

using(var Database = new DataDataContext())
 {
    tests test = new tests();

    test.Name = Name;
    test.Quantity = (short)Quantitty;

    Database.tests.InsertOnSubmit(test);
    try
    {
        Database.SubmitChanges();
    }
    catch (ChangeConflictException e)
    {
        //report error, log error whatever...
    }
}
1-使用try,catch

2-哪一个是主键?您不能在没有主键的情况下进行插入(或表必须有primary键)

3-您调试了代码吗?

1-使用try,catch

2-哪一个是主键?您不能在没有主键的情况下进行插入(或表必须有primary键)


3-您调试代码了吗?

您是否使用本地数据库文件(例如Database1.sdf)?如果是这种情况,则在您构建应用程序时,数据库将被复制到bin文件夹,然后应用程序将使用该副本。应用程序正在向与VS打开的文件不同的文件添加数据。

是否使用本地数据库文件(例如Database1.sdf)?如果是这种情况,则在您构建应用程序时,数据库将被复制到bin文件夹,然后应用程序将使用该副本。应用程序正在将数据添加到与VS打开的文件不同的文件。

Hi use timestamp data type。我认为问题会得到解决。

Hi use timestamp data type。我认为问题会得到解决。

是的,它有主键。问题是,我不知道如何添加它,因为我已选择将其自身增加1,是的,我已经调试了我的代码,所以我建议使用try-catch,让我们看看会发生什么。您是否尝试过使用SQL Profiler来捕获从Linq发送到DB的SQL语句(如果有的话)?是的,它有主键。问题是,我不知道如何添加它,因为我已选择将其自身增加一个,是的,我已经调试了我的代码,所以我建议使用try-catch,让我们看看会发生什么。您是否尝试使用SQL事件探查器捕获从Linq发送到DB的SQL语句(如果有)?不,我使用的是基于服务的数据库(.mdf)。基于服务的数据库也会被复制到输出文件夹。尝试将VS附加到正在运行应用程序的bin/debug中的mdf文件,查看数据是否在该文件中结束。不,我使用的是基于服务的数据库(.mdf)。基于服务的数据库也会被复制到输出文件夹。尝试将VS附加到正在运行应用程序的bin/debug中的mdf文件,并查看数据是否在该文件中结束。