如何解决Linq to SQL 不保存到永久数据库
我已经搜索了我在这里找到的所有问题,所以我将列出我检查过的内容: 我有 LINQ to SQL 和本地 SQL 数据库。它正在保存并显示数据网格的条目,但是当我关闭程序并查看实际数据库表时,它没有保存到数据库中。我看到了一个主键,并且我已经检查过数据库没有保存在 bin 或任何其他临时文件夹中。 (之前解决了这个问题,感谢另一个 StackOverflow 问题!)
当我只做一个类时,这在早些时候起作用,但我已经切换到具有两个子类(HealthyIngredient 和 RegularIngredient)的抽象类(Ingredient)。我正在按照我找到的教程进行操作,但它没有保存到数据库中。 消息框显示“成功”,我没有收到任何错误。我对此很陌生,所以我不确定在哪里寻找出了什么问题。任何帮助将不胜感激。
public void SaveRegularIngredient()
{
using (RecipeClassesDataContext dbContext = new RecipeClassesDataContext())
{
int amountNumber = 0;
int.TryParse(txtRegAmount.Text,out amountNumber);
int caloriesNumber = 0;
int.TryParse(txtRegCalories.Text,out caloriesNumber);
int fatNumber = 0;
bool fatValid = int.TryParse(txtRegFat.Text,out fatNumber);
int carbsNumber = 0;
bool carbsValid = int.TryParse(txtRegCarbs.Text,out carbsNumber);
int proteinNumber = 0;
bool proteinValid = int.TryParse(txtRegProtein.Text,out proteinNumber);
RegularIngredient regularIngredient = new RegularIngredient();
regularIngredient.Name = txtRegIngrName.Text;
regularIngredient.Units = listRegUnits.SelectedItem.ToString();
regularIngredient.Amount = amountNumber;
regularIngredient.Calories = caloriesNumber;
regularIngredient.Fat = fatNumber;
regularIngredient.Carbs = carbsNumber;
regularIngredient.Protein = proteinNumber;
regularIngredient.HealthyVariant1 = txtHlthyVar1.Text;
regularIngredient.HealthyVariant2 = txtHlthyVar2.Text;
dbContext.Ingredients.InsertOnSubmit(regularIngredient);
dbContext.SubmitChanges();
MessageBox.Show("Recourd is saved","Success",MessageBoxButtons.OK,MessageBoxIcon.Information);
txtRegIngrName.Text = "";
txtRegAmount.Text = "1";
txtRegCalories.Text = "";
txtRegFat.Text = "";
txtRegCarbs.Text = "";
txtRegProtein.Text = "";
txtHlthyVar1.Text = "";
txtHlthyVar2.Text = "";
ResetPage();
}
}
答案: 当我查看我的 App.config 时,有两个 Connections 字符串。他们看起来像是去了同一个数据库。第一个是我在开始使用 LINQ to SQL 之前创建的,第二个我认为它是添加的。
<add name="HealthierRecipes.Properties.Settings.RecipeDB"
connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\T\source\repos\Old\HealthierRecipes\HealthierRecipes\RecipeDB.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="HealthierRecipes.Properties.Settings.RecipeDBConnectionString"
connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\RecipeDB.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
当我进入 RecipeClass.designer.cs(LINQ to SQL 用于映射所有内容的页面)时,我发现它只在一个地方使用了连接字符串,所以我尝试用旧的替换它,评论出原件以防万一。现在一切正常。
public RecipeClassesDataContext() :
//base(global::HealthierRecipes.Properties.Settings.Default.RecipeDBConnectionString,mappingSource)
base(global::HealthierRecipes.Properties.Settings.Default.RecipeDB,mappingSource)
感谢您派我检查连接字符串,这让我找到了正确的位置。这样做意味着我不必每次都这样做!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。