Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.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# 如何在C语言中为数据仓库生成动态查询?_C#_Data Warehouse - Fatal编程技术网

C# 如何在C语言中为数据仓库生成动态查询?

C# 如何在C语言中为数据仓库生成动态查询?,c#,data-warehouse,C#,Data Warehouse,我不是C方面的专家。目前我正在开发一个桌面应用程序,用于为数据仓库的报表构建动态查询。有多个表,其中有多个列。任何事都不能预先假定。我的问题是,我应该如何为多个表、列、联接、where's、groupby's等生成动态sql语句。您从用户那里得到了他们想要的任何输入吗?如果是这样,请使用它来限制sql语句中的列/表。例如,如果他们正在查找某个特定日期的客户记录,那么您将从CustomerData中选择*,其中CustomerID=@CustomerID和date=@date,其中@Custome

我不是C方面的专家。目前我正在开发一个桌面应用程序,用于为数据仓库的报表构建动态查询。有多个表,其中有多个列。任何事都不能预先假定。我的问题是,我应该如何为多个表、列、联接、where's、groupby's等生成动态sql语句。

您从用户那里得到了他们想要的任何输入吗?如果是这样,请使用它来限制sql语句中的列/表。例如,如果他们正在查找某个特定日期的客户记录,那么您将从CustomerData中选择*,其中CustomerID=@CustomerID和date=@date,其中@CustomerID和@date是用户的输入。

我认为Linq将帮助您。这是一种非常灵活的针对SQL创建查询的方法,可以轻松地将变量合并到查询中。这似乎是一个很好的起点:

谢谢你的回复。事实上,我想知道,要查询DWH,我应该使用旧的字符串构建方法还是其他方法?在这种情况下,您需要研究Linq。就个人而言,我使用字符串构建,但我在工作中使用的是旧版本的Visual Studio。我不确定,但字符串构建器仅适用于单个表实体。我说的对吗?哦,抱歉,有点误解,我仍然觉得字符串构建技术VS 6.0很乏味,但提供了很多控制。不,可以使用字符串生成器从多个表中获取数据。这是乏味的,但他们都可以给你一个很好的控制量。使用字符串构建时,您需要确保来自用户的数据不会对数据库产生负面影响,即在尝试使用数据之前验证数据。Linq需要一些时间来适应,但也可以像构建字符串一样好。谢谢你的回复。在Linq to Sql中,我可以在db.customers中写入var Query=from text1.text或选择text2.text这些文本框包含多个条目db.fieldnames您正在将Sql表与屏幕上的对象混合。我不确定你能在linq做到这一点。但是,您可以像这样在where子句中使用这些值:var x=db.table.wherew=>w.field1==Text1.text。这有帮助吗?没有太多帮助,我尝试在from子句中动态提供一个表名,但它不起作用。这篇文章似乎解决了这个问题:好的链接,但在这里评论之前我必须学习实体框架。我怀疑实体框架可能会导致一些复杂的情况,因为我正在制作DWH。