问题标签 [dataadapter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net-4.0 - 使用数据适配器时与更新 CASCADE 问题一起使用的输出参数
我手动创建了一些数据适配器——由于版本不兼容,使用自动生成的适配器是不可行的,因为数据集由许多表组成,通常混合有 PK、FK 约束。到目前为止,它的大部分工作都非常顺利,但是在使用新的“添加”行更新数据库时修改适配器以使用 PK 的数据库序列(而不是分配给数据集中行的临时序列)后,我一直打击问题。
我将序列添加到插入语句中,并将 PK 参数更改为输出参数,以便它更新数据集行,从而更新所有子行(使用 UPDATE CASCADE 规则)。问题是子行,在更新具有添加的行状态之前,被更改为修改状态(我不同意这甚至应该发生,即使添加的行肯定应该保持添加状态修改的!)。因此,当我们使用子行更新子表时,它会失败,因为它的预期行具有添加的状态。
我可以解决这个问题的最干净的方法是什么?我能想到的潜在解决方案:
- 关闭 UPDATE CASCADE 并在修改后手动更新每个子行,更新父 PK 并将每行更改回添加后。
- 在开始更新之前在数据集的所有表中创建所有添加行的副本,然后在每个表更新后更新主副本,将所有正确的行标记回添加。
有更好的想法吗?
c# - DataAdapter.Update 在执行更新方法时抛出异常
我正在使用 ODBC Microsoft 文本驱动程序将 csv 文件加载到要在 datagridview 中显示的数据集中,DGV 目前没有列。我可以成功加载文件,但遇到两个问题:
- 2 列加载正常,但也加载了第三个“noname”列 - 为什么会发生这种情况?
- 当我使用 DataAdapter 进行更新时,我得到了这个异常:
错误 [HYS22] [Microsoft][ODBC 文本驱动程序] INSERT INTO 语句包含以下未知字段名称:“NoName”。确保您已正确键入名称,然后重试该操作。
有人知道为什么会这样吗?
CSV 数据:
empName,salary,
charles,4324343,
andrew,31343970,
freddy,998788966,
loop,8878743,
asp.net - 查询工作时 ASP.NET DataAdapter 查询无效
6 个月前,我开始在我的 ASP.net Web 应用程序中使用 DataSet。它是一个漂亮的工具,让我可以快速开发 MVC 应用程序,而无需在数据库连接/查询中做所有脏活。
但是今天我遇到了一些奇怪的问题。它从这个查询开始:
select a.MR_PART_CODE as PART_CODE,
该查询在 Toad for Oracle 中运行良好,但显然当我尝试在 DataAdapter 对象中设置为新查询时它失败了。它对这一行说“函数参数列表中的错误:无法识别 SELECT”:
(select sum(back_order) from STK_REQUEST where part_code=b.part_code) as BO
我做错什么了?
仅供参考,数据库是Oracle。
android - SQLiteDatabase.openDatabase 与 SQLiteOpenHelper.getReadableDatabase
这两种方法有什么区别吗?两者都返回一个打开的 SQLiteDatabase。如果一个数据库不存在,两者都可以创建一个数据库。当需要读/写时,SQLiteOpenHelper 也有 getWriteableDatabase ......
我应该使用哪种方法以及在哪里使用?根据我看到的示例代码,我首先使用 SQLiteOpenHelper 创建我的数据库,然后在需要使用数据库时调用 SQLiteDatabase.openDatabase。
c# - SqlTransaction 中的 SqlDataAdapter.Fill() - 这是一个不好的做法吗?
由于我有一个“DB util”类,DataSet QueryDB(string spName, DBInputParams inputParams)
其中包含用于所有对数据库的调用的方法,因此我想重用此方法以支持事务调用。
所以,最后我将在 SqlTransaction 中有一个 SqlDataAdapter.Fill。这会是一个坏习惯吗?因为我很少在事务中看到 DataAdapter.Fill 的用法,更常见的是 ExecuteReader()。有什么问题吗?
Edit1:问题是在我的事务中经常需要检索一些数据(例如自动ID)......这就是为什么我想将它作为DataSet 获取。
Edit2:奇怪的是,当我在来自 2 个不同进程的 for 循环(10000)中使用这种方法时,我得到“事务(进程 ID 55)与另一个进程在锁定资源上死锁,并被选为死锁受害者。重新运行事务。” . 这是正确的行为吗?
Edit3:(Edit2 的答案)我使用IDENT_CURRENT('XTable')
的是错误的来源。我回去后SCOPE_IDENTITY()
,一切都解决了。
vb.net - 为什么我的 DataAdapter 仅第二次“填充”?SQL Server 紧凑型
一些背景知识:我正在尝试使用 Sync Services for ADO.NET 为我的应用程序创建服务器/客户端同步方案,特别是 LocalCache 自定义工具,它为我设置了整个事情。我的服务器数据库有 5 个表,所有这些表都正在同步到客户端应用程序,客户端应用程序现在有一个与服务器数据库具有相同架构的 SQL Server Compact DB。我有一个包含一些自定义查询的数据集,用于将我的应用程序与本地数据库连接起来。到目前为止,一切都很好。但是,在我的应用程序中,当我尝试使用表单上的表适配器(默认的“填充”方法)填充我的一个表时,它给了我以下异常:
不存在从 DbType 对象到已知 SqlDbType 的映射。
但是,如果我继续并再次填充,它可以正常工作。
如果我两次执行上述代码,一个接一个,第一个失败,第二个有效。
另一点要提的是,这只发生在这个数据表上,数据库中的所有其他 4 个表都按预期工作。
有谁知道这可能是什么原因?
非常感谢
编辑:我删除了我的数据集并重新创建它但没有成功。有人对我有想法吗?
vb.net - VB.NET 组合框显示 System.Data.DataRowView
我使用了这段代码:
然后在组合框中我得到了显示“System.Data.DataRowView”。请帮忙
vb.net - vb.net - 使用数据集填充数据适配器时出错
下面是我的代码:
然后它会捕获一个错误,Incorrect Syntax near".
因为它指向的myAdapter.Fill(myDataSet, "tblVisitor")
不是 Select 命令。
请帮忙。
c# - The new row added didn’t save into underlying database using C# and SQL server
I am trying this code to add new row to database, the new row is saved but when I close the program down, reopen it, the row has disappeared.
So I hope someone can help me
c# - 如何通过数据集插入到具有一对一关系的表中
我使用asp.net 4
andDataSets
来访问数据库。数据库中有两个具有一对一关系的表。这意味着两个表都具有与主键相同的列(例如 Id),并且其中一个表具有@identity
此列集。
所以一般来说,如果我们要插入,我们先插入到第一个表中,而不是插入到第二个表id.table2 = id
中对应的记录在table1中。
我可以想象如何使用存储过程来实现这一点(我们将插入第一个表并将 id 作为输出参数,然后使用此 id 插入第二个表,顺便说一句,都在一个事务中)。
但是有没有办法在不使用存储过程的情况下做到这一点?可能是 DataSets \ DataAdapters 内置了这样的功能吗?
将不胜感激任何帮助。