将引号和逗号附加到SQL的内置子句中

本文关键字:SQL 内置 子句 | 更新日期: 2023-09-27 18:19:33

为了处理支持查询,我正在尝试创建一个小接口,从ASP多行文本框中选择一个换行的文本字符串,并根据文本调整单引号和逗号输出。例如

A1234
A1235
A1236

将成为可以进入"SQL In Clause"的内容

'A1234',
'A1235',
'A1236'

如何改进下面的代码以实现相同的效果?

string[] arr = txtBox.Text.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

我知道excel公式(="'"&A1&"',")适用于相同的情况,但excel在少数机器上不可用。

将引号和逗号附加到SQL的内置子句中

如果是我,我会有:

var value = "IN ('" + String.Join("','", txtBox.Lines) + "')";

或者仅针对数值:

var value = "'" + String.Join("','", txtBox.Lines) + "'";

它基本上是将文本框的每一行(即每一行上的每一个值)与','连接起来。这很好,但您需要确保在开始和结束处都有'

关于Lines属性的进一步阅读:

http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.lines(v=vs.110).aspx

编辑:

string[] lines = txt.Split(new Char[] { ''n', ''r' },
                            StringSplitOptions.RemoveEmptyEntries);
var value = "'" + String.Join("','", lines) + "'";

看看这个答案。。。将所有字符串插入列表<字符串>使用LINQ

有一个Agregate()函数!从来不知道。。。所以你可以说

        var txtBoxText = @"A1234
A1235
A1236";
        var result = txtBoxText.Split(
            Environment.NewLine.ToCharArray(),
                StringSplitOptions.RemoveEmptyEntries)
            .Select(x=>"'" + x + "'")
            .Aggregate((i,j)=> i + "," + j);
        Assert.AreEqual(result, @"'A1234','A1235','A1236'");