C#:SqlCe问题,无法更新到数据库,但可以读取数据
当我运行程序时,此代码可以很好地读取和更新表单,但当我在datagridview中编辑值并单击“更新”时,它不会更新。C#:SqlCe问题,无法更新到数据库,但可以读取数据,c#,sql,visual-studio-2010,datagridview,sql-server-ce,C#,Sql,Visual Studio 2010,Datagridview,Sql Server Ce,当我运行程序时,此代码可以很好地读取和更新表单,但当我在datagridview中编辑值并单击“更新”时,它不会更新。 我正在关注一个视频教程系列,这段代码在视频中确实起到了更新表格的作用 问题:为什么在编辑datagridview中的值时它不更新 using System.Data.SqlServerCe; namespace WindowsFormsApplication2 { public partial class Form1 : Form { priv
我正在关注一个视频教程系列,这段代码在视频中确实起到了更新表格的作用 问题:为什么在编辑datagridview中的值时它不更新
using System.Data.SqlServerCe;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
private SqlCeConnection conn; // Our Connection
private SqlCeDataAdapter da; // Data Adapter
private DataSet ds; // Dataset
private string sTable = "authors"; // Table Name
public Form1()
{
InitializeComponent();
InitData(); // Get the Data
dataGridView1.DataSource = ds;
dataGridView1.DataMember = sTable;
}
public void InitData()
{
try
{
// Instantiate the Connection
conn = new SqlCeConnection("Data Source=|DataDirectory|\\Database1.sdf");
// Instantiate a new DataSet
ds = new DataSet();
// init SQLDataAdapter with select command and connection
da = new SqlCeDataAdapter("SELECT id, name, email FROM " + sTable, conn);
// Automatically generates insert, update and delete commands
SqlCeCommandBuilder cmdBldr = new SqlCeCommandBuilder(da);
// Fill in the dataset view
da.Fill(ds, sTable);
}
catch (Exception excep)
{
MessageBox.Show("Exception: " + excep.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
da.Update(ds, sTable);
}
catch (Exception excep)
{
MessageBox.Show(excep.Message);
}
}
}
}
程序可以编译,但update命令无法在单击按钮1时更新数据库。这可能看起来很愚蠢,但您是否检查了用于连接的用户名是否具有写入权限,而不仅仅是对数据库的只读权限?我将检查update命令是否已初始化。这可能吗?我该怎么做?我自己还没有初始化任何更新命令,在da.update行的代码中放置一个断点,将鼠标悬停在ds上,然后检查您期望的更新。我认为数据集不会意识到在接口上所做的任何更改。