【问题标题】:Write multi-line string to SQL Server using C# ADO.NET?使用 C# ADO.NET 将多行字符串写入 SQL Server?
【发布时间】:2019-11-05 20:23:46
【问题描述】:

我正在尝试将多行文本写入 SQL Server 数据库。每行都以“\r\n”结尾,但文本保存在 SQL Server 中,没有换行符,所以当我从 SQL Server Management Studio 复制列值时,它只是一句话 "lineone line2 line3" 没有换行符。

为什么要去掉换行符?

string cnnString = null;
    Sqlcnn cnn ;
    SqlCommand cmd ;
    string sql = null;

    cnnString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password";
    sql = "INSERT INTO tbl_AnswerSelected (AnswerValue) VALUES (@AnswerValue) ";

    cnn = new Sqlcnn(cnnString);
    try
    {
        cnn.Open();
        using (var sqlCommand = cnn.CreateCommand())
        {
            sqlCommand.CommandText = sql;

             command.Parameters.Add("@AnswerValue", SqlDbType.String);
             command.Parameters["@AnswerValue"].Value = "lineone\r\nline2\r\nline3\r\n";

            return sqlCommand.ExecuteNonQuery();
        }
    }

【问题讨论】:

  • 您是尝试在 SQL Studio 中查看它还是实际检索这些值? SSMS 用网格输出中的空格替换换行符。
  • 不清楚你说“当我从 SQL 复制字符串时”是什么意思
  • 确保选中 Retain CR/LF on copy or save 选项,否则如您所见,它们被替换,现在当您复制时,您应该得到回车/换行符。

标签: c# sql-server ado.net


【解决方案1】:

感谢您的 cmets。似乎问题出在 SQL 管理工作室,因为如果我从 SQL 管理工作室复制列值,则不会显示行尾。我编写了一个 c# 应用程序来从 SQL 数据库中读取记录,并且该字符串包含行尾字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 2016-01-14
    • 1970-01-01
    • 2011-02-22
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多