将引号和逗号附加到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在少数机器上不可用。
如果是我,我会有:
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'");