- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是代码,我为什么会收到这个错误有什么想法吗?
private SQLiteDataAdapter DA_Webfiles;
// Setup connection, fill dataset etc
DataTable dt = this.dataSet.Tables["WEBFILES"];
DataRow newRow = dt.NewRow();
newRow["PATH"] = _url;
dt.Rows.Add(newRow);
this.DA_Webfiles.Update(this.dataSet, "WEBFILES");
// Works to Here
newRow["CONTENT_TYPE"] = "Test Content Type";
this.DA_Webfiles.Update(this.dataSet, "WEBFILES");
// Get ERROR here - Concurrency violation: the UpdateCommand affected 0 of the expected 1 records
最佳答案
你需要:dataAdapter.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord;
在这里获得代码线索:Retrieving Identity or Autonumber Values (ADO.NET)
表格:
CREATE TABLE [emp] (
[emp_id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
[emp_firstname] VARCHAR(100) NOT NULL,
[emp_lastname] varchar(100) not null
)
代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var c = Connect();
var da = new SQLiteDataAdapter("select emp_id, emp_firstname, emp_lastname from emp where 1 = 0", c);
var b = new SQLiteCommandBuilder(da);
da.InsertCommand = new SQLiteCommand(
@"insert into emp(emp_firstname, emp_lastname ) values(:_emp_firstname, :_emp_lastname);
select emp_id /* include rowversion field here if you need */ from emp where emp_id = last_insert_rowid();", c);
da.InsertCommand.Parameters.Add("_emp_firstname", DbType.String, 0, "emp_firstname");
da.InsertCommand.Parameters.Add("_emp_lastname", DbType.String, 0, "emp_lastname");
da.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord;
da.UpdateCommand = b.GetUpdateCommand();
da.DeleteCommand = b.GetDeleteCommand();
var dt = new DataTable();
da.Fill(dt);
var nr = dt.NewRow();
nr["emp_firstname"] = "john";
nr["emp_lastname"] = "lennon";
dt.Rows.Add(nr);
da.Update(dt);
dt.AcceptChanges();
nr["emp_lastname"] = "valjean";
da.Update(dt);
}
SQLiteConnection Connect()
{
return new SQLiteConnection(@"Data Source=../../test.s3db;Version=3;");
}
}
上面的代码也适用于多插入。概念验证代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var c = Connect();
var da = new SQLiteDataAdapter("select emp_id, emp_firstname, emp_lastname from emp where 1 = 0", c);
var b = new SQLiteCommandBuilder(da);
da.InsertCommand = new SQLiteCommand(
@"insert into emp(emp_firstname, emp_lastname ) values(:_emp_firstname, :_emp_lastname);
select emp_id /* include rowversion field here if you need */ from emp where emp_id = last_insert_rowid();", c);
da.InsertCommand.Parameters.Add("_emp_firstname", DbType.String, 0, "emp_firstname");
da.InsertCommand.Parameters.Add("_emp_lastname", DbType.String, 0, "emp_lastname");
da.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord;
da.UpdateCommand = b.GetUpdateCommand();
da.DeleteCommand = b.GetDeleteCommand();
var dt = new DataTable();
da.Fill(dt);
var nr = dt.NewRow();
nr["emp_firstname"] = "john";
nr["emp_lastname"] = "lennon";
var nrx = dt.NewRow();
nrx["emp_firstname"] = "paul";
nrx["emp_lastname"] = "mccartney";
dt.Rows.Add(nr);
dt.Rows.Add(nrx);
da.Update(dt);
dt.AcceptChanges();
nrx["emp_lastname"] = "simon";
da.Update(dt);
nr["emp_lastname"] = "valjean";
da.Update(dt);
}
SQLiteConnection Connect()
{
return new SQLiteConnection(@"Data Source=../../test.s3db;Version=3;");
}
}
关于c# - 并发冲突 : the UpdateCommand affected 0 of the expected 1 records,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1599230/
我有一个 FormView,下面有一个 UpdateButton 和一个 SqlDataSource。我的 updatebutton 总是用相同的值(我的 gridview 第一行的值)更新 Sil
我想有条件地调用 sqldatasource 上的更新语句。我有一个分配给它的 gridview 和 sqldatasource。我处理 gridview_updating 事件。如果我不为其分配 s
我有一个绑定(bind)到 SqlDataSource 的 GridView。我在执行 UpdateCommand 时遇到问题,它似乎执行了两次。当我单步执行 gvChecklist_RowUpdat
我正在使用临时表在 datagridview 中显示数据。当编辑 datagridview 中的数据时,我试图更新临时表。这是我用来执行此操作的 dataGridView1_RowValidated
我只是想用 EF 4.0 实现一些数据库内容。我尝试强制执行 OptimisticConcurrencyException,但它似乎不起作用。我假设如果数据库中的数据在我调用 context.Save
(C# asp.net 3.5) 我已经在 RowDataBound 事件中成功预填充了 CheckBoxList3。在编辑模式下,用户可以进行其他 checkbox 选择。我已成功捕获新值,创建一个
上周我完成了这个工作。至少,我以为我做到了! DataGridView Update 然后我今天又开始做这个项目,我得到了 Update requires a valid UpdateCommand
" SelectCommand= "SELECT id, regGroupID, amountReceived, other FROM table" UpdateCommand="UP
我在 Visual Basic Express Edition (winforms) 中设置了一个简单的 mdb 数据库,我正在尝试将数据从 datagridview 更新到数据库。我已经将文本框数据
我是 c# 新手,尝试将 datagridview 绑定(bind)到 visual studio 2010 中的 mssql 数据库。数据绑定(bind)正常,一切似乎都正常。除了一些奇怪的错误:
这是代码,我为什么会收到这个错误有什么想法吗? private SQLiteDataAdapter DA_Webfiles; // Setup connection, fill dataset etc
我想通过在 VB.net 中使用 DataGridView 更新/编辑数据库(MS Access)中的数据 我使用了这个代码: Dim sadapter As OleDb.OleDbDa
我又检查了一遍错误,发现报错是因为access数据库中的decimal列。它与舍入数字以及将这些数字与我从表中获取的第一个数据进行比较有关。 最佳答案 解决方案是使用:
我的 DataGrid 的编辑命令有问题。 这是我的数据网格: http://imgur.com/0nmDJX0 现在我想编辑我的标题: http://imgur.com/VU20GNa 如何获取“a
对不起。如果我没有想法,我不会发布这个。我已经尝试了论坛中的所有方法,但无济于事。 所以我有 2 张 table 。一开始都是空的。第一个表有点像客户主列表,用户可以在其中创建新的客户资料。这是代码:
我正在使用分页在 datagridview 中显示数据,但是当我尝试使用 updatebutton 更新任何数据时,数据应该在 datagridview 中更新以及在数据库中。 但是我得到这个错误:
我使用 C# 和 Devart.Data.MySql 来更新数据库表中的行。但我有异常(exception) Concurrency violation: the UpdateCommand affe
如何从 Datagridview c# 更新数据库?我的项目是在数据库中加载数据表。但无法更新到数据库中 加载数据按钮 private void button2_Click(object sender
我是一名优秀的程序员,十分优秀!