C# 添加的新行没有使用C和SQL server保存到基础数据库中
我试图用这段代码将新行添加到数据库中,新行已保存,但当我关闭程序,重新打开它时,该行已消失C# 添加的新行没有使用C和SQL server保存到基础数据库中,c#,sql-server,dataadapter,C#,Sql Server,Dataadapter,我试图用这段代码将新行添加到数据库中,新行已保存,但当我关闭程序,重新打开它时,该行已消失 private void Dep_Add_Click(object sender, EventArgs e) { try { SqlCommandBuilder cb = new SqlCommandBuilder(Dep_da); DataRow dRow = Dep_ds.Tables["Department"].NewRow(); dRow[1
private void Dep_Add_Click(object sender, EventArgs e)
{
try
{
SqlCommandBuilder cb = new SqlCommandBuilder(Dep_da);
DataRow dRow = Dep_ds.Tables["Department"].NewRow();
dRow[1] = Dep_Name.Text;
Dep_ds.Tables["Department"].Rows.Add(dRow);
Dep_MaxRows = Dep_MaxRows + 1;
Dep_inc = Dep_MaxRows - 1;
Dep_da.Update(Dep_ds,"Department");
}
catch (Exception exceptionObject)
{
MessageBox.Show(exceptionObject.Message);
}
所以我希望有人能帮我你没有提供太多的上下文信息,所以这只是一个猜测 如果您是从Visual Studio内部执行此操作的,并且正在写入本地连接的数据库,则每次执行程序时,都会将本地数据库从项目复制到bin文件夹,因此每次执行时都使用相同的数据库副本,覆盖上次执行时修改的数据库
您应该能够通过从资源管理器或命令行运行exe来测试是否存在这种情况。您已经问过这个问题,尽管代码略有不同
我为您回答了前面的问题,即使用SqlDataAdapter.Update命令。您正在此处执行此操作,但您没有发布其余代码,因此我不知道您是否更改了任何内容。您可能会调用DataSet.Tables[0]。AcceptChanges方法?您没有看到任何错误消息或任何内容吗?没有,您的解决方案和文件夹中没有出现任何消息。这是附加的数据库吗?这些在使用前会被复制到bin文件夹中。只有在我将重复记录添加到唯一的列中时,才会显示该消息OK 2注释在此处相互矛盾:1:没有出现任何消息,2:仅显示消息。请问是什么?添加stacktraces和确切的错误消息。很抱歉,我只是有点困惑。我发现了另一个代码,它没有出现“索引超出范围”的补偿,但它也没有保存插入基础数据库的新记录。您是否更改了代码中的其他内容,或者只是Dep_Add_Click方法?