问题标签 [sqldataadapter]

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 回答
1384 浏览

.net - 如何使用 SqlDataAdapter 和 DataTable 将新列插入数据库表?

在我的 .NET 程序中,我想通过插入新列来修改数据库表的结构。但我不想通过 ADO.NET 在数据库上运行“ALTER TABLE .....”命令来做到这一点。我想通过在我的数据表中添加新列来做到这一点。因此,当我更新关联的 tableAdapter 时,物理表结构将发生变化。

我期望工作的代码是这样的:

但它没有。

如果有可能,我该怎么做?

0 投票
1 回答
546 浏览

.net - 使用 SQLDataAdapter 查询动态列名

我正在尝试根据查询字符串动态更改 SQLDataAdapter 中的查询。我尝试将它作为参数传递,但这不起作用。还有其他建议吗?

现在我有:

但得到错误:System.Data.SqlClient.SqlException: Invalid column name '@Category'.

我猜是因为这不是正确的方法。我怎样才能做到这一点?我可以通过查询字符串获取列名。我想将该列名传递到查询中并将其识别为列。

0 投票
2 回答
3211 浏览

asp.net - DataTable 总是返回空值

我是 .NET 新手,我必须编写执行存储过程并返回 DataTable 的函数。

我的 SqlConnection 已经初始化,在调试器中运行时我可以看到 DataAdapter 返回值,但我的 DataTable 是空的。

请帮忙。

0 投票
2 回答
1042 浏览

.net - 仅在 .net SqlDataAdapter 中的简单查询超时

好的,所以我有这个查询需要 2-5 秒才能在 Sql Management Studio 中运行。但是当我通过我的 .net 应用程序运行它时,它每次都超过 5 分钟的 CommandTimeout。

我知道 .net 代码有效,因为相同的代码(如下)可以正常执行其他查询,并且正在提供结果。

下面是查询,但表已重命名:

请帮忙,我完全不知道为什么这个查询有问题。

更新(旧,虽然下面的内容很有趣,但它没有引起问题) 所以我运行跟踪,寻找查询,当我手动运行查询时它出现了,但是当我通过代码运行它时,它是'根本没有出现,并得到相同的错误消息。所以我真的查看了连接字符串,我发现了一些奇怪的东西。在传递用户名和密码时,SqlConnection 对象的 ConnectionString 属性缺少密码。我不知道这是否指向解决方案,但我现在很困惑。

更新 #2我没有让跟踪运行足够长的时间。我能够捕捉到超长的通话。

运行这个确切的查询,我得到了相同的结果(它实际上完成了,通过这种方法运行它只需要 5 分钟以上,而不是直接运行查询需要 3 秒)。请注意,我确实尝试使用指定为 nvarchar(4000) 的参数运行查询,但仅在 Sql management studio 中运行查询就可以正常工作。

更新#3 我已经更新了查询中连接的所有表的统计信息,但运气不好。sp_executeSQL 查询仍然需要将近 5 分钟(它比重建统计信息之前少了大约 30 秒)。在这一点上,我不知所措。有任何想法吗?

更新#4终于找到了解决方案!问题是由于我在结果生成查询之前使用了 if 条件的“参数嗅探”。执行计划引擎假设参数在作为 null 传递时会以 null 形式命中查询,但事实并非如此。它们总是有价值的。为了纠正这个问题,我删除了查询开头的 if 条件,并在使用参数的地方放置了 ISNULL 检查。这通知了我意图的执行计划,并且 sp_executeSQL 调用的执行速度与我的 Sql Management Studio 执行速度相同。感谢大家的帮助!

0 投票
4 回答
64959 浏览

c# - " ReadOnlyException DataTable DataRow "列 X 是只读的。"

我有一小段代码,它最初一遍又一遍地创建了一个SqlDataAdapter对象。

为了稍微简化我的调用,我将SqlDataAdapter替换为SqlCommand并将SqlConnection移到循环之外。

现在,每当我尝试编辑返回到我的DataTable的数据行时,我都会抛出一个以前没有抛出的ReadOnlyException 。

注意:我有一个自定义函数,可以根据他们的 ID 检索员工的全名。为了简单起见,我在下面的示例代码中使用了“John Doe”来证明我的观点。

ExampleQueryOldSqlDataAdapter一起使用;每当我尝试写入DataRow的元素时, ExampleQueryNew 都会失败并出现ReadOnlyException

  • ExampleQueryOld

这有效并且没有问题:

  • ExampleQueryNew

此示例引发 ReadOnlyException:

为什么我可以在一种情况下写入DataRow元素,而在另一种情况下不能?

是因为SqlConnection仍然打开还是SqlDataAdapter在幕后做某事?

0 投票
2 回答
13418 浏览

c# - 使用 SqlDataAdapter 计算行数

我的代码有问题。SqlDataAdapter如果有任何行,我想从我的行数中获取。

0 投票
1 回答
1021 浏览

insert - 使用 DataAdapter 将 DataTable 插入 DB 不起作用

我正在尝试使用 DataAdapter 将 DataTable 插入数据库表(数据库位于移动设备 - Psion 上)。由于某种原因,它不起作用 - 当我检查数据库表时 - 它只是显示为一个空表......

代码:>

private void btnCommTables_Click(object sender, EventArgs e)
{
try
{
DataSet ds = WSDanielGroup.Instance._WSDanielGroupToDevice.GetLoadTables();

0 投票
1 回答
2271 浏览

sql-server - 使用 SqlDataAdapter 从 DataGridView 更新

我有一个显示来自 SQL Server 数据库的数据的 DataGridView。它允许用户编辑数据并将其保存回数据库。

将数据保存回数据库的方式是这样的:

当我保存到普通表时,这很好用。但是,我还想保存到具有 INSTEAD OF 触发器的视图,该触发器在插入、更新和删除时触发。当我尝试将上述内容与此视图一起使用时,出现错误:

对于不返回任何键列信息的 SelectCommand,不支持为 UpdateCommand 生成动态 SQL。

如何保存到此视图?我不想直接保存到基础表,因为我希望触发器触发。

谢谢!

编辑:我也尝试手动生成 InsertCommand 和 UpdateCommand,但得到了同样的错误。

编辑 2:原来我在手动生成命令时弄错了。一旦我修复它工作正常 - 我的视图会更新并且触发器会按预期触发。我猜您只是无法使用 SqlCommandBuilder 为视图自动生成命令。

0 投票
1 回答
238 浏览

c# - 为什么两个 SqlDataAdaptor 都必须指定 Table 两次?

我正在尝试使用 Query 中的Fill查询。我不明白的是,当我已经给出了要查询的表时,为什么我必须在 中明确说明表名。DataSetSqlDataAdaptorFillSqlDataAdapter

看下面的代码,查询字符串中已经有“FooTable”了,为什么在SqlDataAdapter.Fill中又需要“FooTable”呢?

0 投票
1 回答
744 浏览

asp.net - 为什么我的数据集没有填充我的 GridView

我不知道为什么我的数据没有显示在我的 gridview 中,如果我使用具有相同查询的 sqldatasource 它可以工作。