Tag: dataadapter

SqlTransaction中的SqlDataAdapter.Fill() – 这是一个不好的做法吗?

因为我有一个带有DataSet QueryDB(string spName, DBInputParams inputParams)方法的“DB util”类,我用它来调用数据库,所以我想重用这个方法来支持事务调用。 所以,最后我将在SqlTransaction中有一个SqlDataAdapter.Fill。 这会是一种不好的做法吗? 因为我很少在事务中看到DataAdapter.Fill的使用,更常见的是ExecuteReader()。 有没有捕获? Edit1:事情是我的事务内部经常需要检索一些数据(例如自动ID)…这就是为什么我想把它作为DataSet。 Edit2:奇怪的是当我在2个不同进程的for循环(10000)中使用这种方法时,我得到“事务(进程ID 55)在锁资源上与另一个进程死锁,并被选为死锁牺牲品。重新运行事务“。 。 这是正确的行为吗? Edit3 :(回答Edit2)我正在使用IDENT_CURRENT(‘XTable’) ,这是错误的来源。 在我回到SCOPE_IDENTITY() ,一切都已经解决了。

SQLiteDataAdapter Update方法返回0

我从我的CSV文件中加载了83行,但是当我尝试更新SQLite数据库时,我得到0行……我无法弄清楚我做错了什么。 该方案产出: Num rows loaded is 83 Num rows updated is 0 源代码是: public void InsertData(String csvFileName, String tableName) { String dir = Path.GetDirectoryName(csvFileName); String name = Path.GetFileName(csvFileName); using (OleDbConnection conn = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + dir + @”;Extended Properties=””Text;HDR=Yes;FMT=Delimited”””)) { conn.Open(); using (OleDbDataAdapter adapter = new OleDbDataAdapter(“SELECT * FROM ” + name, conn)) { […]

DataAdapter.Update()不更新数据库

我确信有一个非常简单的原因,这一行不起作用,但它已经避开过去一周,所以我希望别人会注意到我的错。 我这个项目已经工作了几个星期到一个月。 我一直在使用旧的DataAdapter,CommandBuiler等与1个数据库上的一些linq到sql编码的混合,具有多个Windows应用程序表单。 此特定表单使用DataAdapter,Dataset和Command Builder从数据库编辑或删除行。 它一直工作正常,直到我切换计算机。 现在数据集正在更新,但数据库不是。 以下是此表单的完整代码: private void exitToolStripMenuItem_Click(object sender, EventArgs e) { if (MessageBox.Show(“Exit Cook Book?”, “Exit?”, MessageBoxButtons.OKCancel) == DialogResult.OK) { Application.Exit(); } } private void goBackToolStripMenuItem_Click(object sender, EventArgs e) { AddRecipe goBack = new AddRecipe(); Close(); goBack.Show(); } private void helpToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show(“Scan through the Cook Book to […]

错误:在传递带有已修改行的DataRow集合时,Update需要有效的UpdateCommand

我正在使用Paging在datagridview显示数据,但是当我尝试使用updatebutton更新任何数据时,应该在datagridview和数据库中更新datagridview 。 但我得到这个错误: 在传递带有已修改行的DataRow集合时,Update需要有效的UpdateCommand 发生在这一行: adp1.Update(dt);//here I am getting error 以下是代码 public partial class EditMediClgList : Form { public EditMediClgList() { InitializeComponent(); try { con = new OleDbConnection(@”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb”); con.Open(); } catch (Exception err) { MessageBox.Show(“Error:” +err); } cmd1 = new OleDbCommand(“Select * from MedicalColeges order by MedicalClgID”, con); ds = new DataSet(); adp1 = […]

C#DataAdapter和DataSet有多个表

我从很多地方读过,可以使用DataAdapter用多个表填充DataSet。 它也没有说明单个Update调用是否可以更新DataSet中的所有表。 有人可以帮我弄清楚如何做到这一点? 似乎除了在第二次填充之前更改DataAdapter上的SelectCommand的示例之外,没有任何(我尝试在线查找)示例。 但我觉得这种方法违背了DataAdapter的目的。 从我的数据来看,也许单个DataAdapter只能处理单个数据库表,而Update只能在该表上运行。 因此,多表DataSet将要求相应的DataAdapter调用其Update以完全更新DataSet。 是这样的吗? 最后,外键关系和约束会自动保存在DataSet(级联删除,级联更新)中吗? 也许链接到示例或教程可能会有所帮助。 非常感谢!

使用对DataTable所做的更改来更新数据库…混淆

如果我使用DataAdapter.Fill(DataTable);填充DataAdapter.Fill(DataTable); 然后使用以下简单的方法更改DataTable中的行: DataTable.Rows[0][“Name”] = “New Name”; 如何轻松地将这些更改保存回数据库? 我以为我可以调用DataAdapter.Update(DataTable); 但我读到只适用于TableAdapter(?)。

使用OleDbDataAdapter更新DataTable C#

我一直在尝试使用OleDbDataAdapter来更新DataTable,但对这些命令感到困惑。 因为我有时从不同的表中获取信息,所以我不能使用CommandBuilder。 所以我试图在我的on上创建命令,但发现参数很难。 DataTable.GetChanges返回需要使用INSERT或UPDATE命令的行 – 我想我无法区分它们。 我需要你完成以下内容: DataTable dt = new DataTable(); OleDbDataAdapter da = new OleDbDataAdapter(); // Here I create the SELECT command and pass the connection. da.Fill(dt); // Here I make changes (INSERT/UPDATE) to the DataTable (by a DataGridView). da.UpdateCommand = new OleDbCommand(“UPDATE TABLE_NAME SET (COL1, COL2, …) VALUES (@newVal1, @newVal2, …) WHERE […]