Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#ADO.NET将多行字符串写入SQL Server?_C#_Sql Server_Ado.net - Fatal编程技术网

使用C#ADO.NET将多行字符串写入SQL Server?

使用C#ADO.NET将多行字符串写入SQL Server?,c#,sql-server,ado.net,C#,Sql Server,Ado.net,我正在尝试将多行文本写入SQL server数据库。每一行都以“\r\n”结尾,但文本保存在SQL Server中,没有换行符,因此当我从SQL Server management studio复制列值时,它只是一句话 没有换行符的“lineone line2 line3” 为什么要删除换行符? string cnnString = null; Sqlcnn cnn ; SqlCommand cmd ; string sql = null; cnnString

我正在尝试将多行文本写入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 management studio中,因为如果我从SQL management studio复制列值,行尾将不会显示。我编写了一个c#应用程序从SQL数据库中读取记录,字符串包括行尾字符

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