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