繁体   English   中英

为什么不将新行添加到我的数据库表中?

[英]Why isn't the new row being added to my database table?

这是我的代码:

private void button1_Click(object sender, EventArgs e)
{
    var dbContext = new DataClasses1DataContext();
    var record = new AutorizedActivity();
    record.MbrId = (int) ddlMember.SelectedValue;
    record.ActId = (int) ddlActivity.SelectedValue;

    dbContext.AutorizedActivities.InsertOnSubmit(record);
    dbContext.SubmitChanges();
}

基本上,表单有两个下拉列表。 用户从每个列表中进行选择,然后按下按钮以使用他们的选择来更新表格。

问题是,没有数据被添加到表中。 完全没有错误发生。 我已经调试完成,看不到任何错误。 有什么我可以检查以确定程序为什么似乎要插入记录但没有实际插入的东西吗?

这是我的表定义:

CREATE TABLE [dbo].[AutorizedActivities] (
[Id]    INT IDENTITY (1, 1) NOT NULL,
[MbrId] INT NOT NULL,
[ActId] INT NOT NULL,
CONSTRAINT [PK_AutorizedActivities] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_AutorizedActivities_AvailableActivities] FOREIGN KEY ([ActId]) REFERENCES [dbo].[AvailableActivities] ([Id]),
CONSTRAINT [FK_AutorizedActivities_Members] FOREIGN KEY ([MbrId]) REFERENCES [dbo].[Members] ([Id]));

为了清楚起见,这是数据上下文布局: 在此处输入图片说明

解决方案:将数据库表正在更新中...只是没有一个我一直在寻找。 我在调试模式下运行程序,该程序将.mdf的副本放置在debug / bin目录中。 我不是在看那张桌子。 我正在查看生产目录中的表。 如果我在发布模式下运行该程序,它将像一个魅力一样工作并更新了活动表,而不是测试 (调试)版本。

有两件事可能对您有所帮助,但是不可能给出一个明确的答案-您将不得不尝试一些事情。 我在这里尝试做的第一件事是更改为EF代码的“标准”结构,该结构将“关闭/处置”上下文,并确保在Entity本身上正确设置了您的identity属性。 有时VS不会自动执行此操作。 因此,请检查该设置并将代码更改为此。

using (var dbContext = new DataClasses1DataContext()) {
    var record = new AutorizedActivity();
    record.MbrId = (int) ddlMember.SelectedValue;
    record.ActId = (int) ddlActivity.SelectedValue;

    dbContext.AutorizedActivities.Add(record);
    dbContext.SubmitChanges();
}

另外...您是否拼错了“授权”字样-在为时已晚之前修复此问题,并通过整个应用程序进行宣传。

数据库表正在更新中...只是没有一个我一直在寻找。 我在调试模式下运行程序,该程序将.mdf的副本放置在debug / bin目录中。 我不是在看那张桌子。 我正在查看生产目录中的表。 如果我在发布模式下运行该程序,它将像一个魅力一样工作并更新了活动表,而不是测试 (调试)版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM