C# ";update语句中的语法错误;尝试使用datagridview(也使用OleDbCommandBuilder)更新access数据库时
我正在datagridview中显示一个数据,并尝试从datagridview更新数据库。因此,我使用OleDbCommandBuilder生成更新命令。当点击更新按钮时,我得到“更新语句中的语法错误” 这是我的密码:C# ";update语句中的语法错误;尝试使用datagridview(也使用OleDbCommandBuilder)更新access数据库时,c#,winforms,datagridview,C#,Winforms,Datagridview,我正在datagridview中显示一个数据,并尝试从datagridview更新数据库。因此,我使用OleDbCommandBuilder生成更新命令。当点击更新按钮时,我得到“更新语句中的语法错误” 这是我的密码: private void listBox9_SelectedValueChanged(object sender, EventArgs e) { AppDomain.CurrentDomain.SetData("DataDirectory", Environm
private void listBox9_SelectedValueChanged(object sender, EventArgs e)
{
AppDomain.CurrentDomain.SetData("DataDirectory", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\\Trip Sheet Management System\\WABCO.mdb");
sql = "SELECT ID,[TRIP COST] FROM TMSDETAILS";
dataAdapter = new OleDbDataAdapter(sql, connection);
dataTable = new DataTable();
bindingSource = new BindingSource();
connection.Open();
dataAdapter.Fill(dataTable);
bindingSource.DataSource = dataTable;
dataGridView1.DataSource = bindingSource;
connection.Close();
}
private void button8_Click(object sender, EventArgs e)
{
commandBuilder = new OleDbCommandBuilder(dataAdapter);
try
{
dataAdapter.Update(dataTable);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
当我点击更新按钮时,我在消息框中得到一个错误,上面写着“更新语句中的语法错误”
字段1:ID-自动编号,主键
字段2:旅行费用-人数伙计们,我自己找到了答案 发生错误的原因是字段名包含一个空格,即TRIP COST 只需在command builder语句旁边添加两行 commandBuilder.QuotePrefix=“[” commandBuilder.QuoteSuffix=“]” 这是经过编辑的代码
private void listBox9_SelectedValueChanged(object sender, EventArgs e)
{
AppDomain.CurrentDomain.SetData("DataDirectory", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\\Trip Sheet Management System\\WABCO.mdb");
sql = "SELECT ID,[TRIP COST] FROM TMSDETAILS";
dataAdapter = new OleDbDataAdapter(sql, connection);
dataTable = new DataTable();
bindingSource = new BindingSource();
connection.Open();
dataAdapter.Fill(dataTable);
bindingSource.DataSource = dataTable;
dataGridView1.DataSource = bindingSource;
connection.Close();
}
private void button8_Click(object sender, EventArgs e)
{
commandBuilder = new OleDbCommandBuilder(dataAdapter);
commandBuilder.QuotePrefix = "[";
commandBuilder.QuoteSuffix = "]";
try
{
dataAdapter.Update(dataTable);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
希望它能帮助别人 调试代码时,确切的命令是什么?我在你的代码上没有看到任何更新语句。没有更新语句。这就是为什么我使用CommandBuilderMaybe,因为您已经关闭了dataAdapter的连接?没有。我没有关闭dataAdapter的连接。几乎几年后,我才真正帮助修复了某些问题+1.