问题标签 [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 回答
1837 浏览

sql - VS TableAdapter 查询配置向导中的 SQL 查询

我正在尝试在 Visual Studio TableAdapter 查询向导中编写 SQL 查询

我的 SQL 查询是:

我得到错误:

'不支持声明 SQL 结构或语句'

如果我删除 Declare 语句,我会收到错误:

'不支持 Set SQL 构造或语句'

有解决办法吗?

谢谢。

0 投票
2 回答
3352 浏览

.net - 即使在 TableAdapter.Update 运行之后,DataSet.HasChanges 也是 true

我有一些我正在更新的旧数据集代码。我正在尝试确定数据集是否对其进行了更改,以便我可以正确提示保存请求。但是 myDataset.HasChanges() 总是返回 true。

在我的保存方法中,我编辑了代码以确定数据集何时更改,并制作了如下代码:

在第 1 行之后,-myDataSet.HasChanges = true(可理解)
在第 2 行之后,-myDataSet.HasChanges = false(可理解)
在第 3 行之后,-myDataSet.HasChanges = true

我不确定为什么这会发生在第 3 行,这不应该是错误的,因为我只是在数据集上运行了更新吗?

0 投票
1 回答
8265 浏览

c# - TableAdapter.Update 不工作

这是我的功能:

您可以看到函数中的第四次更新使用与其他更新相同的功能,我只是添加了一些调试内容。前三个表绑定到 DataGridViews 并且工作正常。第四个表的成员绑定到各种文本框。

当我更改绑定到 GasReading 列的文本框中的值并单击保存时,第一个 MessageBox 实际上确实显示了新值,因此它正确地将其放入数据集中。但是,受影响的行始终显示为 0,并且实际数据库中的值未更新。

谁能看到我的问题?我知道问题必须在我的代码中的其他地方,因为四种更新方法是相同的,但我只是不知道从哪里开始。

这是我的绑定代码:

我知道有更复杂的绑定方法,但绑定不是问题。同样,数据正在从绑定的文本框进入数据表,但它们并没有从那里进入数据库。

0 投票
1 回答
3271 浏览

wpf - 将 WPF 数据网格绑定到数据表

我使用了发布在以下位置的奇妙示例:

http://www.codeproject.com/KB/WPF/WPFDataGridExamples.aspx

将 WPF 数据网格绑定到数据表。

下面的源代码编译得很好;它甚至在 WPF 数据网格中运行并显示 InfoWork 数据表的内容。万岁!但是带有数据网格的 WPF 页面不会显示在设计器中。我在我的设计页面上收到了一个难以理解的错误,该页面显示在这篇文章的末尾。我假设设计者在实例化数据视图以在网格中显示时遇到了一些困难。我该如何解决?

XAML 代码:

C#代码:

错误显示在带有网格的设计器页面的位置:

发生了未处理的异常:

在程序集“PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”中键入“MS.Internal.Permissions.UserInitiatedNavigationPermission”未标记为可序列化。在 System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type) 在 System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context) 在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() 在 System. Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(对象 obj,ISurrogateSelector surrogateSelector,StreamingContext 上下文,SerObjectInfoInit serObjectInfoInit,IFormatterConverter 转换器,ObjectWriter objectWriter)...在:Ms.Internal.Designer.DesignerPane.LoadDesignerView()

编辑:修复了我的 Visual Studio。至少它给了我一个更好的错误信息:

请求“System.Data.OleDb.OleDBPermission,system.Data, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。

0 投票
2 回答
1839 浏览

c# - C# TableAdapter.Update() 使用的是 UPDATE 而不是 INSERT

我有一个绑定到表适配器的 DataGridView。这是我用来填充适配器的选择查询。如果没有来自 WO_BreakerRail 的匹配条目,则 ID 列将为空。当我更新包含数据的行时,更新命令可以正常工作。但是,如果我更新 WO_BreakerRail 中没有匹配信息的行,它会失败,因为表适配器认为它应该更新,因为我已经修改了它的行集合中的行,但 WO_BreakerRail 没有该行。有没有办法告诉表适配器在 ID 为空时使用插入命令而不是更新命令?

0 投票
1 回答
3613 浏览

visual-studio - 如何在 Visual Studio 中为 TableAdapter 对象创建刷新语句?

我正在开发一个 ADO.NET 数据提供程序和一个关联的 DDEX 提供程序。我无法说服 Visual Studio TableAdapter 配置向导生成 SQL 语句以在插入和更新后刷新数据表。它生成插入和删除语句,但不会生成选择语句来进行刷新。

可以通过将表从服务器资源管理器(在 Visual Studio 中)拖放到数据集(例如,DataSet1.xsd)上来访问所提及的功能。它创建一个 TableAdapter 对象并配置 SELECT、UPDATE、DELETE 和 INSERT 语句。如果右键单击 TableAdapter 对象,上下文菜单有一个“配置”选项,用于启动“TableAdapter 配置向导”。该向导的第一个对话框有一个高级选项按钮,它指向一个标题为“刷新数据表”的选项。当与 SQL Server 表一起使用时,该选项会导致将“select field1, field2, ...”形式的语句添加到 TableAdapter 的 InsertCommand 和 UpdateCommand 命令的末尾。

您是否知道为了使 Visual Studio 将这些刷新语句添加到更新/插入命令中,可能需要从 DDEX 提供程序(或者可能是 ADO.NET 数据提供程序)公开什么类型的属性或接口?

Advanced SQL Generation Options Dialog Box的 MSDN 文档有一条说明,“刷新数据表仅在支持 SQL 语句批处理的数据库上受支持。” 这似乎暗示 .NET 数据提供者可能需要公开一些表明支持这种行为的属性。但我找不到它。有任何想法吗?

0 投票
1 回答
2138 浏览

c# - ADO.NET 表适配器添加/更新/删除

我在 C# 中使用表适配器,Visual Studio 会在其中为您生成代码。使用以下代码,我的插入和更新工作得很好。

但是,当尝试使用 .update 删除时,它给了我以下错误。

当传递带有已删除行的 DataRow 集合时,更新需要有效的 DeleteCommand。

0 投票
1 回答
404 浏览

sql - 我插入新的父行和子行状态更改从已添加到未更改

rowsUpdated 是一个 int32,用于计算更新了多少行

我确定这是我在看的东西,但我就是看不到它。

在此先感谢,乔尔

0 投票
3 回答
7345 浏览

c# - 如何避免重复键异常

我正在使用 TableAdapter 在循环中的表中插入记录。

其中 TeamID 是表中的主键,_teamID 插入它。实际上我正在从包含唯一 teamId 的 XML 文件中提取数据

首次运行此循环后,Insert 抛出 Duplicate Primary Key found 异常。为了处理这个,我做了这个

但是使用 try catch 语句代价高昂,如何避免这个异常。我在 VS2010 中工作并且INSERT ... ON DUPLICATE KEY UPDATE不工作。

我想避免 try catch 语句并在不使用 try catch 语句的情况下处理它。

0 投票
1 回答
172 浏览

database - 在运行时更改 VS 创建数据集的源数据库

这个问题和答案讨论了实现预期结果的理论和方法,所以我不想重新讨论这些建议。在我重写所有的 tableadapter 之前,我试图确保在我的实例中没有一个简单的解决方案。

我所拥有的是一个相对成熟和复杂的项目,它利用了许多用 VS 设计的数据集并访问 VistaDB 数据库(最初是 SQLCE)。由于各种原因,我现在希望将数据集绑定到用户的实际数据库设为可选。最终用户的数据库选择将仅限于使用相同 SQL 命令的数据库。

我已经进行了相当多的研究,并且一些假设的解决方案声称可以做到这一点,但是在深入研究时,它们不会更改数据库类型 - 只是它是连接字符串或路径。

有没有人真正做到了这一点,如果可以,请他们至少告诉我理论,最好提供他们使用的代码。

谢谢 ...