问题标签 [tableadapter]

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

sql-server - 更改 Sql Server 2005 中的触发器

我需要更改 sql server 2005 中的触发器,并且我想使用表适配器和 sql 语句来完成,而不是存储过程。我知道我可以在查询浏览器中运行它并执行它,但我需要在多个数据库中部署它并在更新中使用表适配器。这可能吗?

执行添加查询->更新->粘贴以下代码->查询生成器以查看它是否解析

错误... USE [DataBaseName] SQL 构造或语句不受支持。

如果我移除顶部并从 ALTER TRIGGER 开始

不支持 ALTER TRIGGER SQL 构造或语句。

我对此仍然很陌生,并且我要么以错误的方式进行此操作和/或没有存储过程就不可能做到这一点,我不会感到惊讶。

编辑:是的,我在 C# 中这样做。

谢谢。我可以从 ALTER TRIGGER 开始这样做,这将完成工作。

0 投票
1 回答
25714 浏览

c# - 如何从 C# 中的 DataRow 读取字节数组?

我有一个DataSet通过 aDataTable正确填充单个DataRow的 a TableAdapter

我可以使用如下代码从 DataRow 中提取数据:

我有另一列名为 DataFile 类型的列varbinary(max)

当我尝试从与上面相同的列中提取该列的数据时DataRow,我什么也得不到。

如果我在这个位置放置一个断点,我可以查看 dataFileDataRow,查看 ItemArray 属性并看到二进制数据位于 ItemArray 中的位置 5。

我尝试使用它的索引直接访问 ItemArray,但字节数组没有被复制到 fileFromDatabase 变量。

我还注意到将 fileFromDatabase 添加到我的手表会产生此错误:

“当前上下文中不存在名称‘fileFromDatabase’”

执行仍然与 fileFromDatabase 的定义在同一个块中,所以我不明白它是如何脱离上下文的。

我将 Visual Studio 的配置设置为 Release 而不是 Debug。这导致我在尝试检查 fileFromDatabase 时看不到我正在寻找的实时调试信息。从 Release 切换到 Debug 后,我现在可以在手表中看到变量,并且可以验证上面的代码是否正常工作。

0 投票
1 回答
7022 浏览

c# - C# 表适配器更新不起作用

我正在尝试将对象序列化为 sql 紧凑型数据库。我正在使用 VCS Express 2008。每次我运行测试以查看我的数据是否发送到数据库时,数据库中都没有任何内容。我的代码:

它编译得很好,但由于某种原因不起作用。

0 投票
3 回答
2222 浏览

c# - 为什么 Visual Studio 的表适配器查询不返回与它所代表的存储过程相同的数据?

我在 Visual Studio 中使用表适配器来查询我的 SQL Server 2005 数据库中的存储过程。当我通过我的网站应用程序拨打电话时,它什么也不返回。当我通过 SQL Server Manager 进行相同的调用时,它会返回预期的数据。

我在对适配器方法的调用上放置了一个断点,getData并查看了所有参数及其值,并在服务器管理的查询中匹配它们以确保。我正在发送以下查询:

更远

我想我想知道 Visual Studionull在尝试将查询发送到 SQL 服务器之前是否对 's 做了一些事情。如果没有,我该如何解决这个问题?

编辑:所有这些值都由变量传递,我只是在那个断点输入了这些变量中的内容。

0 投票
4 回答
1695 浏览

.net - 使用 TableAdapter 调用 Oracle SP 非常慢

我有一个在 sql 编辑器(oracle)中执行时运行速度超快的查询:1ms。

由 DataSet-TableAdapter 执行相同的查询(作为存储过程)需要 2 秒。我只是检索20行。

由于我使用的是 TableAdapter,因此返回值存储在 ref 游标中。

如果我要获取 2'000 行,我可以理解构建 DataSet 需要一些时间,但仅 20 行的 2 秒对我来说似乎太多了。

有更好的方法在 oracle 上执行 SP,或者这是唯一的方法?我可以尝试做些什么来提高性能?

谢谢你的帮助!


在 google 中搜索,似乎问题出在 refcursor 上。其他人面临同样的性能问题,但没有提供解决方案。

0 投票
1 回答
1033 浏览

.net - 如何将非列特定参数添加到 C# 表适配器?

我第一次使用 TableAdapter 并向其添加自定义查询,但在向查询中添加一些搜索参数时遇到了困难,这就是我所拥有的:

当我测试执行查询时,系统提示我输入 id_order,但不是 word1 或 word2。我还尝试将这些直接作为参数添加到适配器并将它们传入,但它们不起作用。奇怪的是, id_order 继续工作,但其他值不会生成任何匹配项。

我的目标是允许用户输入名字和/或姓氏,并使其与具有该名字和/或姓氏的任何订单相匹配。

关于我做错了什么的任何想法?

0 投票
6 回答
6707 浏览

sql-server-ce - 使用类型化 DataSet 和 DataGridView 的最后插入记录 ID 问题

我正在为一个简单的数据库应用程序使用以下内容:

  • SQL Server Compact Edition .sdf 文件作为数据库,具有 int 主键 ID。
  • 类型化 DataSet 和 BindingSource 作为数据访问层
  • DataGridView 用于显示数据。

我的问题是,最后插入的记录/行 ID 有问题。当我使用导航器组件的追加按钮向 datagridview 添加一行时,新记录/行的 ID 为-1。即使使用 TableAdapter.Update() 将数据保存到数据库后,它仍然是 -1。我知道我可以使用带有 @@identity 或 scope_identity() 的单独查询来获取最后一个 ID,但是您只需要手动使用另一个查询来更新您的数据听起来并不正确。我在这里错过了什么吗?在保存到数据库并获取刚刚插入的记录的 ID 后,是否有自动更新数据的方法?

另外,我在数据集设计器->表适配器配置->高级窗口中看到了“刷新数据表”选项,但由于某种原因它被禁用了。但是不知道有没有关系。。

我会很感激这方面的任何帮助..

0 投票
4 回答
11537 浏览

c# - 如何根据两个表过滤 TableAdapter 的 FillBy?

我在 Windows 窗体应用程序上使用 VS2008 C# Express 和 Northwind 数据库。

我使用拖放设置两个数据网格视图的主详细信息绑定(我使用了订单和订单详细信息)。在这一点上,一切都按预期工作。为了不返回表中的每一行,我想根据 Orders 表的过滤器和 Orders Details 表中的字段过滤 Orders 表。在 TableAdapter 配置向导中,我使用查询生成器添加了一个新的 FillByMyFilter,它创建了以下查询:

SELECT Orders.[Order ID]、Orders.[Customer ID]、Orders.[Employee ID]、Orders.[Ship Name]、Orders.[Ship Address]、Orders.[Ship City]、Orders.[Ship Region]、 Orders.[Ship Postal Code]、Orders.[Ship Country]、Orders.[Ship Via]、Orders.[Order Date]、Orders.[Required Date]、Orders.[Shipped Date]、Orders.Freight FROM Orders INNER JOIN [Order Details] ON Orders.[Order ID] = [Order Details].[Order ID] WHERE (Orders.[Ship Name] LIKE N'A%') AND ([Order Details].Quantity < 20)

我通过添加两个表得到了这个,但没有检查 Order Details 表中的任何字段框,因此它只会返回原始 Fill 查询中使用的列。我现在只是试图过滤主表中的数据集,而不是返回不同数量的列。订单详细信息的子行仍应像默认的未过滤结果集一样工作。

现在的问题:当我单击执行查询按钮时,它工作正常。我从上面的查询中得到 53 行,而不是使用设计器创建的默认填充的 1078 行。它返回与原始填充查询相同的列。但是,当我尝试运行应用程序时,出现以下约束错误:

“未能启用约束。一行或多行包含违反非空、唯一或外键约束的值。”

我究竟做错了什么?

更新:我认为由于向导创建的 INNER JOIN 导致约束错误。如果我编辑查询以使用 LEFT JOIN,则向导将其更改回 INNER JOIN。

我的问题仍然是如何根据父表和子表中的条件过滤父表(订单)中的记录。我的下一个测试是尝试使用存储过程,但想知道仅使用 TableAdapter 自定义 FillBy 方法。

问候,

调试

0 投票
2 回答
331 浏览

c# - 调用 tableAdapter 的 Fill() 方法时如何防止 selectedValue 改变?

我已将我的 ListBox 绑定到一些数据。

问题是当我调用 myTableAdapter.Fill(..) 方法时,SelectedValue 更改为列表中的第一个项目 ID。尽管 VS 中的“选定值”未绑定到任何地方(见图)。 替代文字 http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png

请问如何防止这种行为?

非常感谢您的帮助。

0 投票
1 回答
2808 浏览

.net - Managment Studio 和 TableAdapter 之间存储过程的执行时间差异很大

存储过程如何通过 Management Studio 在 10 秒内运行,但通过 TableAdapter 需要 15 分钟才能获得相同的输入?它是可重复的,这意味着我在每个环境中至少运行了 3 次,而 Management Studio 始终快 100 倍左右。

我正在使用 .net 2.0 和 SQL Server 2000

在 SQL Server Management 中,我是这样执行的:

在 TableAdapter 中,我使用StoredProcedure CommandTypeanddbo.uspMovesReportByRouteStep作为CommandText. 我正在从 ASP.NET 页面调用表适配器,尽管如果我也尝试在本地“预览数据”它会在 30 秒内超时。

提供存储过程是不切实际的,因为它有超过 100 行长,并且依赖于许多其他 UDF 以及同一数据库和其他数据库上的视图。

使用任何一种方法,所有其他存储过程似乎都在大约同一时间运行。这怎么可能?