我正在尝试使用数据库执行Windows窗体应用程序。
我是数据库,我添加了实体框架。
这是我用来在数据库中添加数据的代码:
public void AddProductToDataBase()
{
try
{
DataBase _db = new DataBase();
var item = new Products();
item.Title = title.Text;
item.Subtitile = subtitle.Text;
item.Description = description.Text;
item.Price = float.Parse(price.Text);
_db.Products.Add(item);
_db.SaveChanges();
MessageBox.Show("Product successfully added!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
title.Clear();
subtitle.Clear();
description.Clear();
price.Clear();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
一切似乎都正常,没有错误信息和消息"产品已成功添加" apear,但是当我查看数据库时,什么都没有。
我之前搜索到此处发布,我发现visual studio正在复制数据库,如果你改变了#34;复制到输出目录"数据库的属性为"如果更新则复制"它应该正常工作,但事实并非如此,我对实体框架做了同样的改变,仍然相同,没有任何改变。
我可以在正确的数据库中添加数据吗?我还需要程序可移植。
谢谢!
编辑:这是DataBase.Contex.cs
namespace OlxSelenium
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class DataBase : DbContext
{
public DataBase()
: base("name=DataBase")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Photos> Photos { get; set; }
public virtual DbSet<Products> Products { get; set; }
}
}
答案 0 :(得分:0)
试试这段代码。
try
{
using (DataBase context = new DataBase())
{
Products item = new Products();
item.Title = title.Text;
item.Subtitile = subtitle.Text;
item.Description = description.Text;
item.Price = float.Parse(price.Text);
context.Products.Add(item);
context.SaveChanges();
MessageBox.Show("Product successfully added!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
title.Clear();
subtitle.Clear();
description.Clear();
price.Clear();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}