这是我的代码:
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]));
为清晰起见,这是datacontext布局:
解决方案:数据库表 正在更新......而不是我正在查看的那个。我在调试模式下运行程序,它将.mdf的副本放在debug / bin目录中。我没看那张桌子;我正在查看生产目录中的表格。如果我在发布模式下运行该程序,它将像魅力一样工作并更新 live 表,而不是 test (调试)版本。
答案 0 :(得分:0)
这里有两件事情可能会有所帮助,但要对这一点作出明确答复是不可能的 - 你必须要尝试一下。我在这里尝试的第一件事就是改用标准' EF代码的结构,它将"关闭/处理"上下文,并确保在Entity本身上正确设置了您的标识属性。有时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();
}
另外......你拼错了吗?#34;授权" - 现在解决这个问题已经太晚了,你通过整个应用程序传播它。
答案 1 :(得分:0)
数据库表 正在更新......而不是我正在查看的那个。我在调试模式下运行程序,它将.mdf的副本放在debug / bin目录中。我没看那张桌子;我正在查看生产目录中的表格。如果我在发布模式下运行该程序,它将像魅力一样工作并更新 live 表,而不是 test (调试)版本。