DataTable单元格包含换行符,而SQL表格不包含

21 浏览
0 Comments

DataTable单元格包含换行符,而SQL表格不包含

当我在网格中有一个结果集时,如下所示:

SELECT 'line 1
line 2
line 3'

或者

SELECT 'line 1' + CHAR(13) + CHAR(10) + 'line 2' + CHAR(13) + CHAR(10) + 'line 3'

带有嵌入的回车换行符(CRLF),在网格中的显示似乎将其替换为空格(我猜这样可以显示所有数据)。

问题在于,如果我正在生成一个脚本,我不能简单地剪切和粘贴。我必须将代码转换为打开一个游标并打印相关列的形式,这样我就可以从文本结果中复制和粘贴它们。

有没有更简单的解决办法来保留从结果网格中复制/粘贴操作中的回车换行符(CRLF)?

网格有帮助的原因是我目前正在为同一对象生成多个脚本,这些脚本位于不同的列中 - 一个是bcp输出,另一个是xml格式文件,另一个是表创建脚本等等...

0
0 Comments

问题的原因是:在SQL表中,单元格不包含换行符,而在DataTable中,单元格包含换行符。

解决方法是:在构建DataTable时,使用以下代码将换行符替换为空格:

dataTable.Columns.Add("ColumnName", typeof(string));
dataTable.Rows.Add(cellValue.Replace(Environment.NewLine, " "));

这将确保DataTable中的单元格不包含换行符。

0