Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataAdapter是否从基表架构中选择字符串?_C#_Xsd_Schema_Strongly Typed Dataset_Dataadapter - Fatal编程技术网

C# DataAdapter是否从基表架构中选择字符串?

C# DataAdapter是否从基表架构中选择字符串?,c#,xsd,schema,strongly-typed-dataset,dataadapter,C#,Xsd,Schema,Strongly Typed Dataset,Dataadapter,当我构建.xsd时,我必须为每个表选择列,它为表创建了一个模式,对吗?那么,我如何才能获得那个Select字符串作为dataadapters新实例的基本Select命令,然后根据需要向其追加Where和OrderBy子句呢 这将使我不必使每个DataAdapter的字段列表(对于同一个表)与.xsd文件中该表的模式保持同步 在特定的表模式上使用多个DataAdapter,但在Where和OrderBy子句中使用不同的参数,这不是很常见吗?当然,人们不必维护(甚至冗余地构建)半打数据适配器的Sel

当我构建.xsd时,我必须为每个表选择列,它为表创建了一个模式,对吗?那么,我如何才能获得那个Select字符串作为dataadapters新实例的基本Select命令,然后根据需要向其追加Where和OrderBy子句呢

这将使我不必使每个DataAdapter的字段列表(对于同一个表)与.xsd文件中该表的模式保持同步

在特定的表模式上使用多个DataAdapter,但在Where和OrderBy子句中使用不同的参数,这不是很常见吗?当然,人们不必维护(甚至冗余地构建)半打数据适配器的Select字符串的字段列表部分,这些数据适配器都使用相同的表模式

我设想的是这样的伪代码:

BaseSelectString = MyTypedDataSet.JobsTable.GetSelectStringFromSchema()  // Is there such a method or technique?

WhereClause = " Where SomeField = @Param1 and SomeOtherField = @Param2"
OrderByClause = " Order By Field1, Field2"

SelectString=BaseSelectString + WhereClause + OrderByClause

OleDbDataAdapter adapter = new OleDbDataAdapter(SelectString, MyConn)

每个表都有一个默认查询(顶部带有复选框的查询)。当您将表拖到数据集中以创建查询时,它会编写一条SQL语句,用于对表进行架构。保持该查询的简单,您可能不会在代码中实际使用它,并且您可以始终编辑该查询以更新表架构

每次打开默认查询时,它都会连接到数据源,并允许您选择以前不在其中的新列。如果要更新现有列,请在尝试打开查询之前删除表中的所有列。保存查询时,更新的列将被重新添加

确保您的连接字符串具有查看列信息的权限

您可以向单个TableAdapter添加多个查询。设计器中的TableAdapters显示为分区,顶部为表架构,底部为查询。默认查询将控制哪些列可用于其他查询的输出。要添加其他查询,请右键单击TableAdapter并选择“添加->查询”,或者如果您正在选择TableAdapter的底部,则可以选择“添加查询…”。您创建的任何新SQL查询都将从默认查询中的SQL开始。为每个新查询指定一个方法名称,可以使用该名称代替默认查询的“Fill”或“GetData”方法。假设每个新查询都有一个与默认查询匹配的结果集,即使它们可以有不同的“where”子句参数

总之

  • 每个表可能只有一个TableAdapter,只需添加多个查询即可
  • 每个附加查询可以有不同的“Where”子句参数,只要它们都返回相同的列