Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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
Sql server 通过CLR将不可打印的sybol(enter)从C#返回到SQL Server_Sql Server_Sql Server 2005_Clr - Fatal编程技术网

Sql server 通过CLR将不可打印的sybol(enter)从C#返回到SQL Server

Sql server 通过CLR将不可打印的sybol(enter)从C#返回到SQL Server,sql-server,sql-server-2005,clr,Sql Server,Sql Server 2005,Clr,我有以下CLR功能: [Microsoft.SqlServer.Server.SqlFunction] public static SqlString PrintText(SqlString text) { // Put your code here return new SqlString(text.Value); } [Microsoft.SqlServer.Server.SqlFunction] 公共静态SqlString打印

我有以下CLR功能:
    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlString PrintText(SqlString text)
    {
        // Put your code here
        return new SqlString(text.Value);
    }
[Microsoft.SqlServer.Server.SqlFunction]
公共静态SqlString打印文本(SqlString文本)
{
//把你的代码放在这里
返回新的SqlString(text.Value);
}

我想在传递
'\r\n'
'\r\n'
去吧。但是相反,我得到了
'\r\n'
'\r\n'
你能告诉我这个密码有什么问题吗

谢谢。

您可以随时:

return new SqlString(text.Value.Replace("\\r\\n", "\r\n"));
你可以随时:

return new SqlString(text.Value.Replace("\\r\\n", "\r\n"));

在T-SQL中,不会将换行符写为
\r\n
。而是使用换行符:

'this
is a
string
in SQL
with
line breaks'

如果将带有
\r\n
的字符串传递给C代码,则不会发生任何神奇的事情,它不会自动转换。反斜杠字符与其他字符一样。当您在代码中的文字字符串中使用反斜杠时,编译器将其用作转义码,并将控制字符放入实际字符串中。

在T-SQL中,您不会将换行符写成
\r\n
。而是使用换行符:

'this
is a
string
in SQL
with
line breaks'

如果将带有
\r\n
的字符串传递给C代码,则不会发生任何神奇的事情,它不会自动转换。反斜杠字符与其他字符一样。当您在代码中的文字字符串中使用反斜杠时,编译器将其用作转义码,并将控制字符放入实际字符串中。

从SQL端,您可以将
char(13)+char(10)
插入T-SQL文字,如下所示:

DECLARE@text varchar(100)
SET@test='this'+char(13)+char(10)
+'是'+char(13)+char(10)
+字符串+字符(13)+字符(10)
+“in-SQL”+char(13)+char(10)
+'带'+char(13)+char(10)
+“换行”
虽然这是可行的,但它比Guffa的回答要详细得多


但是,此技术也可用于将默认代码页的任何字符插入字符串中。函数
CHAR(int)
接受0到255之间的任何整数。超出该范围的值将导致它返回null。函数
NCHAR(int)
最多接受65535个值,并将相应的unicode字符插入到unicode字符串中。函数
ASCII(char)
UNICODE(nchar)
执行反向操作。

从SQL端,您可以将
char(13)+char(10)
插入T-SQL文本,如下所示:

DECLARE@text varchar(100)
SET@test='this'+char(13)+char(10)
+'是'+char(13)+char(10)
+字符串+字符(13)+字符(10)
+“in-SQL”+char(13)+char(10)
+'带'+char(13)+char(10)
+“换行”
虽然这是可行的,但它比Guffa的回答要详细得多


但是,此技术也可用于将默认代码页的任何字符插入字符串中。函数
CHAR(int)
接受0到255之间的任何整数。超出该范围的值将导致它返回null。函数
NCHAR(int)
最多接受65535个值,并将相应的unicode字符插入到unicode字符串中。函数
ASCII(char)
UNICODE(nchar)
执行反向操作。

您在函数中提供的实际代码是什么?如果是这样,它所做的就是输出输入的值。但是输入\r\n我希望它是输入符号,但不是。即使我把'1'+字符(13)+字符(10)+'2'传递给它,我也得不到我想要的。我想知道如何实现这个目标。你提供的是你函数中的实际代码吗?如果是这样,它所做的就是输出输入的值。但是输入\r\n我希望它是输入符号,但不是。即使我把'1'+字符(13)+字符(10)+'2'传递给它,我也得不到我想要的。我想知道如何实现这个目标。