Vb.net 新命令文本返回的数据模式与主查询的模式不同。检查您的查询';s命令文本(如果不需要)

Vb.net 新命令文本返回的数据模式与主查询的模式不同。检查您的查询';s命令文本(如果不需要),vb.net,sql-server-2008-r2,strongly-typed-dataset,Vb.net,Sql Server 2008 R2,Strongly Typed Dataset,新命令文本返回模式与主查询模式不同的数据。如果不需要,请检查查询的命令文本。 当我在强类型数据集中添加一个返回单个列的查询时,我得到了这个警告 前 当我给出这个查询时,它将向我显示一个警告 因为当我在windows窗体中调用同一函数时,警告会导致约束错误所以您应该在TableAdapter中配置此查询以返回标量(单个)值,而不是返回行。否则,TableAdapter将尝试应用与主查询中相同的模式 根据你的评论: “除了DataAdapter的标准功能外,TableAdapter还提供其他

新命令文本返回模式与主查询模式不同的数据。如果不需要,请检查查询的命令文本。

当我在
强类型数据集中添加一个返回单个列的查询时,我得到了这个警告

当我给出这个查询时,它将向我显示一个警告


因为当我在windows窗体中调用同一函数时,警告会导致约束错误

所以您应该在
TableAdapter
中配置此查询以返回标量(单个)值,而不是返回行。否则,
TableAdapter
将尝试应用与主查询中相同的模式

根据你的评论:

“除了DataAdapter的标准功能外,TableAdapter还提供其他类型化方法,用于封装与关联类型化DataTable共享公共架构的查询。换句话说,在TableAdapter上可以有任意多个查询,只要它们返回的数据符合相同的模式


您必须使用不同的模式创建另一个TableAdapter(一列),或者继续返回主查询的所有列并选择所需的列(例如,具有组合框属性)。

您应该在
TableAdapter
中配置此查询以返回标量(单个)值而不是返回行。否则,
TableAdapter
将尝试应用与主查询中相同的架构

根据你的评论:

“除了DataAdapter的标准功能外,TableAdapter还提供其他类型化方法,用于封装与关联类型化DataTable共享公共架构的查询。换句话说,在TableAdapter上可以有任意多个查询,只要它们返回的数据符合相同的模式


您要么创建另一个具有不同模式的TableAdapter(一列),要么继续返回主查询的所有列并选择所需的列(例如,具有组合框属性的列).

当查找不同的值时,架构将不同于主查询。主查询通常将封装整个结构,以便连接到表单。I(例如)希望从所有记录中获得不同的值来填充组合框。由于架构错误,这是不可能的。若要建议无人需要使用DISCTINCT值来填充组合框或列表框,这将是不可能的

总之,需要创建一个新的TableAdapter,或者遍历数据集并用唯一值填充组合


能够添加多个查询(FillBy或GetBy)以返回行或单个值,而不必担心模式会解决很多问题。

在查找不同的值时,模式将与主查询不同。主查询通常会封装整个结构以连接到表单。I(例如)希望从所有记录中获得不同的值来填充组合框。由于架构错误,这是不可能的。若要建议无人需要使用DISCTINCT值来填充组合框或列表框,这将是不可能的

总之,需要创建一个新的TableAdapter,或者遍历数据集并用唯一值填充组合


能够添加多个查询(FillBy或GetBy)返回行或单个值而不必担心模式会解决很多问题。

我不想用作标量…因为单个列可能返回多个值rows@kishorejangid:我可以问一下,当TableAdapter的主查询返回多个列时,为什么只需要返回一列?您只需选择所需的列即可(f.e.具有ComboBox属性)。这些东西位于强TypeDataSet中,我们将获得一个默认适配器,名为
GetData()
。在这个表格构建中,我有7列,但我只想列出不同的
BuildingNames
列,在
组合框中显示它们,并且组合框只接受一列。然后创建一个只包含很少列的TableAdapter的简单变体。(请参见我的编辑)您可以将此
文件室
和旧的
文件室详细信息
。您还不明白。如果您的数据模型是合理的规范化的,那么您不应该在每个表中都有十几列。通常情况下,您查询1列还是20列并没有太大区别。因此,将数据表拆分为一小部分应该是非常例外的但无论如何,这将是一个干净的方法。我不想使用标量…因为一个列可能返回许多rows@kishorejangid:我可以问一下,当TableAdapter的主查询返回多个列时,为什么只需要返回一列?您只需选择所需的列(例如,具有ComboBox属性的列)。在强typpe数据集中,我们将获得一个默认适配器,名为
GetData()
。在这个表格构建中,我有7列,但我只想列出不同的
BuildingNames
列,在
组合框中显示它们,并且组合框只接受一列。然后创建一个只包含很少列的TableAdapter的简单变体。(请参见我的编辑)您可以将此
文件室
和旧的
文件室详细信息
。您还不明白。如果您的数据模型是合理的规范化的,那么您不应该在每个表中都有十几列。通常情况下,您查询1列还是20列并没有太大区别。因此,将数据表拆分为一小部分应该是非常例外的l和一个详细的表格。但无论如何,这将是一个干净的方法。
`SELECT DISTINCT Building
 FROM            Room
 ORDER BY Building