【问题标题】:How can i get the parts of a SQL string using C#?如何使用 C# 获取 SQL 字符串的各个部分?
【发布时间】:2022-06-14 01:18:49
【问题描述】:

我有一个 SQL 字符串

select Id, Name from Order where Id ='8675' and Name ='Test'

如何使用 C# 获得这部分内容,即 from 部分、where 部分和 select 部分最终得到:

  • select Id, Name ----->选择部分
  • from Order -----> 来自部分
  • where Id ='8675' -----> 部分

如果需要,还有任何其他部分,如果他们有group by 等?

我已经尝试了以下

var str = @"select Id, Name from Order where Id ='8675' and Name ='Test'";

        String[] spearator = { "from", "where" };
        String[] strlist = str.Split(spearator,
           StringSplitOptions.RemoveEmptyEntries);  

我现在得到的问题是它不会忽略大小写,所以如果有 From 它不会工作。 我该怎么做?

【问题讨论】:

  • 欢迎来到 Stack Overflow。请通过tour 了解 Stack Overflow 的工作原理,并阅读How to Ask 了解如何提高问题的质量。请显示您尝试过的尝试以及您从尝试中得到的问题/错误消息。
  • 我已将我的尝试添加到问题中
  • 遍历字符,替换成小写字母,除非它们在引号中可能会起作用,但请记住处理转义字符,子查询处理起来更加复杂
  • 查看下面的parser,wiki页面上有一个解析select语句的例子。

标签: c# sql parsing


【解决方案1】:
String[] strlist = str.ToLower().Split(spearator,
           StringSplitOptions.RemoveEmptyEntries);

在 Split() 之前添加 ToLower()。

【讨论】:

    猜你喜欢
    • 2021-11-03
    • 2012-05-13
    • 1970-01-01
    • 2011-06-27
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多