相关疑难解决方法(0)

条件Linq查询

我们正在研究日志查看器.该用户可以选择按用户,严重程度等进行过滤.在Sql中我会添加到查询字符串,但我想用Linq来做.我怎样才能有条件地添加where-clause?

c# linq .net-3.5 linq-to-sql

87
推荐指数
6
解决办法
8万
查看次数

如何管理SQL查询

目前,我的代码(PHP)中包含太多SQL查询.例如...

// not a real example, but you get the idea...
$results = $db->GetResults("SELECT * FROM sometable WHERE iUser=$userid");
if ($results) {
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

我正在研究使用存储过程来减少这种情况并使事情变得更加强大,但我有一些担忧.

我在网站上使用了数百种不同的查询,其中很多都非常相似.当从上下文(使用结果的代码)中删除所有这些查询并将其置于数据库的存储过程中时,我应该如何管理它们?

php mysql sql

14
推荐指数
1
解决办法
5632
查看次数

是否有动态生成sql的标准方法?

我想问一下其他程序员如何生成动态SQL字符串以作为SQLCommand对象的CommandText执行.

我正在生成包含用户生成的"WHERE"子句和SELECT字段的参数化查询.有时查询很复杂,我需要对如何构建不同部分进行大量控制.

目前,我使用许多循环和switch语句来生成必要的SQL代码片段并创建所需的SQL参数对象.这种方法很难遵循,它使维护成为一项真正的苦差事.

这样做有更清洁,更稳定的方法吗?

有什么建议??

编辑:要添加我以前的帖子的详细信息:

由于要求,我无法真正模拟我的查询.它只是变化太大了.

  1. 我必须允许聚合函数,如Count().这对Group By/Having条款有影响.它还会导致嵌套的SELECT语句.这反过来会影响使用的列名
  2. 某些联系人数据存储在XML列中.用户可以将这些数据AS WELL AS和其他关系列一起查询.后果是xmlcolumns不能出现在Group By子句[sql syntax]中.
  3. 我正在使用一种使用Row_Number()SQL函数的高效分页技术.后果是我必须使用Temp表,然后在选择我的子集之前获取@@ rowcount,以避免第二次查询.

我将展示一些代码(恐怖!),以便你们知道我正在处理什么.

sqlCmd.CommandText = "DECLARE @t Table(ContactId int, ROWRANK int" + declare
      + ")INSERT INTO @t(ContactId, ROWRANK" + insertFields + ")"//Insert as few cols a possible
      + "Select ContactID, ROW_NUMBER() OVER (ORDER BY " + sortExpression + " "
      + sortDirection + ") as ROWRANK" // generates a rowrank for each row
      + outerFields
      + " FROM ( SELECT c.id AS ContactID"
      + coreFields
      + …
Run Code Online (Sandbox Code Playgroud)

.net sql

12
推荐指数
1
解决办法
1585
查看次数

标签 统计

sql ×2

.net ×1

.net-3.5 ×1

c# ×1

linq ×1

linq-to-sql ×1

mysql ×1

php ×1