Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加的新行没有使用C和SQL server保存到基础数据库中_C#_Sql Server_Dataadapter - Fatal编程技术网

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方法?