Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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#SqlCeDataAdapter在更改datagridview中的值后调用Adapter.Update()时未更新数据库中的值_C#_Sql_Sql Server Ce_Sqlcommandbuilder_Sqlcedatareader - Fatal编程技术网

C#SqlCeDataAdapter在更改datagridview中的值后调用Adapter.Update()时未更新数据库中的值

C#SqlCeDataAdapter在更改datagridview中的值后调用Adapter.Update()时未更新数据库中的值,c#,sql,sql-server-ce,sqlcommandbuilder,sqlcedatareader,C#,Sql,Sql Server Ce,Sqlcommandbuilder,Sqlcedatareader,我有一个代码,其中包含一个本地数据库“database1.sdf”以及带有一些值的表“Employees”。我正在使用datagridview.Datasource属性将数据库中的所有行添加到datagridview。所有行都正在从表中提取!好的 当我试图从datagridview更新列值时,它不是从数据库更新的。删除行和添加新行时也会出现相同的问题。 运行程序时不会发生异常 using System; using System.Collections.Generic; using System

我有一个代码,其中包含一个本地数据库“database1.sdf”以及带有一些值的表“Employees”。我正在使用datagridview.Datasource属性将数据库中的所有行添加到datagridview。所有行都正在从表中提取!好的 当我试图从datagridview更新列值时,它不是从数据库更新的。删除行和添加新行时也会出现相同的问题。 运行程序时不会发生异常

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlServerCe;
namespace demoDatabaseOperations
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    public SqlCeConnection con = new SqlCeConnection("Data source=Database1.sdf");
    public DataTable dt = new DataTable();

    public SqlCeDataAdapter adptr;
    public SqlCeCommandBuilder cmdBuilder;
    private void Form1_Load(object sender, EventArgs e)
    {

        con.Open();

        if (con.State == ConnectionState.Open)
        {
            adptr = new SqlCeDataAdapter("select * from employees", con);
            cmdBuilder = new SqlCeCommandBuilder(adptr);

            adptr.UpdateCommand = cmdBuilder.GetUpdateCommand();

            adptr.Fill(dt);
            this.dataGridView1.DataSource = dt;

        }
      }

    //Button For Update/delete/insert values to the database
    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            adptr.Update(dt);
            adptr.Dispose();
        }
        catch (Exception f) { MessageBox.Show(f.ToString()); }

    }
}
}

有人能解决这个问题吗


提前谢谢

我想我知道发生了什么事。您已将数据库文件放在项目的根文件夹中,并已将其添加到项目中。当您生成项目时,此文件将复制到调试文件夹,并且此复制的文件是应用程序更新的文件


您可以将数据库文件的绝对路径放在连接字符串Data source=C://Database1.sdf中,我想我知道发生了什么。您已将数据库文件放在项目的根文件夹中,并已将其添加到项目中。当您生成项目时,此文件将复制到调试文件夹,并且此复制的文件是应用程序更新的文件


您可以将数据库文件的绝对路径放在连接字符串Data source=C://Database1.sdf

中,您确定adptr有更新说明吗?请参见示例-您的连接字符串中没有显示任何更新部分code@BugFinder我们必须手动创建更新指令,如“update tablename set column…”?或者
adptr.UpdateCommand=cmdBuilder.GetUpdateCommand()当从datagridview更改列时,这将自动为更新值生成这些指令?请尝试强制删除此行adptr.UpdateCommand=cmdBuilder.GetUpdateCommand()@阿布杜不工作!同样的问题仍然存在!您确定adptr有更新说明吗?请参见示例-您的文档中没有显示任何更新部分code@BugFinder我们必须手动创建更新指令,如“update tablename set column…”?或者
adptr.UpdateCommand=cmdBuilder.GetUpdateCommand()当从datagridview更改列时,这将自动为更新值生成这些指令?请尝试强制删除此行adptr.UpdateCommand=cmdBuilder.GetUpdateCommand()@阿布杜不工作!同样的问题仍然存在!美好的问题是使用更新的数据库更新database.sdf!美好的问题是使用更新的数据库更新database.sdf!