【问题标题】:SQL to C# conversionSQL 到 C# 的转换
【发布时间】:2011-05-16 13:50:11
【问题描述】:

我有一个工作流程,在一个 Web 应用程序后面,它在表中生成一些记录,它太笼统了,以至于我实际上不得不在表中添加 SQL(where 子句)作为数据。

看起来像这样(不要介意引号):

 SET @sql = '(((1.00 < col_a) 
     AND (col_a < 5.00))) 
     AND NOT LEFT(col_b, 4) IN ('something') 
     OR ( CHARINDEX('cucu', col_c) > 0 ) 
     AND NOT ISNULL(col_d, '') <> '' 
     AND ((1.00 < CONVERT(FLOAT, col_e)) 
     AND (CONVERT(FLOAT, col_f)< 5.00)) 
     AND NOT col_g IN ('10') '

一切正常,没有抱怨,但客户希望有一个代码内方法,我不太确定为什么。 因此,与其使用预定的 SQL 作业,运行我的存储过程,我想我会以某种方式在 C# 桌面应用程序中重建所有这些,它正在做同样的事情。

我想知道是否有办法让我以某种方式从 C# 中使用我的代码(如上面的 @sql 示例)。我的意思是某种编译,或任何东西。

我以为我会在 DataTable 中选择结果,然后以某种方式将我的 @sql 应用到该 DataTable 上。我想使用 where 子句缩小原始 DataTable 的结果。

如果我不做这样的事情,恐怕我也不得不改变整个保存(@sql)过程,这会使任务变得更大。

我使用的是 SQL 2k5,客户端有 sql 2k8(我们将很快升级)和我将用 C# 构建的桌面应用程序。

【问题讨论】:

  • 查看 Microsoft O/RM 工具 LINQ to SQL 和实体框架。它们允许您使用嵌入到 C# 语言(称为 LINQ)中的查询语法与数据库对话。它非常强大,并且可以生成非常易于维护的代码。

标签: c# sql compiler-construction datatable where-clause


【解决方案1】:

您目前没有从 C# 执行任何数据库过程吗?

这非常容易做到。将您的 SQL 代码保存在 proc 中,并通过 .NET 中的 SQL 类执行它:

http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson07.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 2018-03-20
    • 1970-01-01
    • 2020-09-21
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多