问题标签 [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.

0 投票
1 回答
613 浏览

c# - DataAdapter 是一种将数据插入 SQL Server 数据库的可靠方法吗

昨天我的同事告诉我,使用数据适配器将数据插入到sql server数据库中是不可靠的,因为它不能保证数据插入正确。他还告诉我,如果数据插入不成功,它不会显示任何类型的错误消息。

我真的很困惑。我认为微软发明了 ado.net,以便可以将数据插入数据库而没有任何额外的危险。

你们有什么感想?数据适配器不可靠吗?

0 投票
2 回答
300 浏览

c# - 填充数据集的问题

这是我的代码文件的一小部分。每次我的调试器到达“NewDA.Fill(NewDS);”行 在运行时它会跳转到捕获。我很肯定 daynumber 变量获得了一个存在于数据库中的值,并且我已经在我的数据库上的代码文件之外尝试了查询,它工作正常。我还在代码的更多部分使用连接字符串“db”并获得成功。

0 投票
2 回答
1378 浏览

.net - .NET TableAdapter 到 DataAdapter

TableAdapter 是 DataAdapter 的包装器。以通用方式使用 TableAdapters 是不可能的(因为它们继承了 Component 类)。是否可以从 TableAdapter 中取出包装好的 DataAdapter?

0 投票
1 回答
1682 浏览

sql-server-2005 - 在 DataAdapter.Update/Refresh 后未设置 DataTable 标识列,使用“而不是”触发器(SqlServer 2005)

在我们的单元测试中,我们使用普通的 ADO.NET(DataTable、DataAdapter)来准备数据库。检查结果,而测试的组件本身在 NHibernate 2.1 下运行。.NET 版本是 3.5,SqlServer 版本是 2005。

数据库表将标识列作为主键。一些表应用而不是插入/更新触发器(这是由于向后兼容性,我无法更改)。触发器通常是这样工作的:

ADO.NET DataAdapter 发出的插入语句(由瘦 ADO.NET 包装器即时生成)尝试将标识值检索回 DataRow:

但是 DataRow 的 id-Column 仍然为 0。当我暂时删除触发器时,它工作正常 - id-Column 然后保存数据库设置的标识值。

另一方面,NHibernate 使用这种插入语句:

这行得通,NHibernate POCO 在刷新后立即正确设置了其 id 属性。这对我来说似乎有点违反直觉,因为我希望触发器在不同的范围内运行,因此 @@identity 应该比 scope_identity() 更适合。

所以我认为没问题,我也会在 ADO.NET 下应用 scope_identity() 而不是 @@identity。但这没有任何效果,DataRow 值仍然没有相应地更新。

现在最好的部分是:当我将这两个语句从 SqlServer 分析器复制并粘贴到 Management Studio 查询中(包括“exec sp_executesql”)并在那里运行它们时,结果似乎是相反的!ADO.NET 版本在那里工作,而 NHibernate 版本不工作(选择 scope_identity() 返回 null)。我多次尝试验证,但无济于事。好吧,实际上这正是我所期望的——@@identity 没问题,而 scope_identity() 失败了。

当然,在 Management Studio 中调用它只会显示来自数据库的结果集,无论 NHibernate 和 ADO.NET 内部发生什么,都是另一个话题。此外,T-SQL SET 定义的几个会话属性在两个场景中是不同的(Management Studio 查询与运行时的应用程序)

这对我来说是一个真正的难题。我会很高兴对此有任何见解。谢谢!

0 投票
2 回答
1117 浏览

c# - 这些 .NET 自动生成的表适配器命令有什么作用?例如 UPDATE/INSERT 后跟一个 SELECT

我正在使用一个我正在尝试更改的遗留应用程序,以便它可以与 SQL CE 一起使用,而它最初是针对 SQL Server 编写的。

我现在遇到的问题是,当我尝试执行 dataAdapter.Update 时,SQL CE 抱怨它不希望在命令文本中使用 SELECT 关键字。我相信这是因为 SQL CE 不支持批处理 SELECT 语句。

自动生成的表适配器命令如下所示...

它在做什么?看起来它正在将数据表中的新记录插入到数据库中,然后将该记录从数据库中读回数据表中?那有什么意义呢?

我可以浏览代码并删除所有这些 SELECT 语句吗?或者有没有更简单的方法来解决我想要将这些数据适配器与 SQL CE 一起使用的问题?

我无法重新生成这些表格适配器,因为那些知道如何早已离开的人。

0 投票
1 回答
5224 浏览

c# - 从数据集中更新数据库?

我想从我的数据集中更新我的数据库。

然后它返回此错误

你有什么建议吗?

0 投票
1 回答
9547 浏览

c# - C# SQL 数据适配器 System.Data.StrongTypingException

我通过填充将数据从 SQL 获取到数据集。它只是一个包含两列(CategoryId (int) 和 CategoryName (varchar))的表。

当我在填充方法后查看我的数据集时,CategoryId Columns 似乎是正确的。但是在 CategoryName 我有一个System.Data.StrongTypingExceptio n。

那意味着什么?

有任何想法吗?

0 投票
2 回答
6283 浏览

c# - SQLiteDataAdapter 更新方法返回 0

我从我的 CSV 文件中加载了 83 行,但是当我尝试更新 SQLite 数据库时,我得到 0 行......我不知道我做错了什么。

程序输出:

源代码是:

关于为什么它没有更新正确的行数的任何提示?

更新:

我试图在调用 update 之前设置命令,但我仍然遇到同样的问题......现在的代码是:

当我调试它时,命令文本是:_commandText = "INSERT INTO [Tags] ([tagId], [tagName], [description], [colName], [dataType], [realTime]) VALUES (@param1, @param2, @param3, @param4, @param5, @param6)"

这是一个以 xml 格式显示数据集状态的粘贴图:http: //pastie.org/936882

0 投票
1 回答
1310 浏览

ado.net - DataReader、DataAdapter 和 DataSet - 何时使用?

我想知道什么时候必须使用这些 ADO.NET 组件???有人可以举个例子吗?

0 投票
1 回答
1202 浏览

.net - DataSource 和 DataAdapter 有什么区别?

DataSource 和 DataAdapter 有什么区别?我正在尝试决定是否应该从 IDataSource 或 IDataAdapter 下降以在 Winforms 和 WebForms 之间共享代码,除了使用它们的方式略有不同之外,我似乎无法弄清楚区别是什么。