Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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# SQL Server中连接的最佳实践?_C#_Sql_Sql Server_Concatenation - Fatal编程技术网

C# SQL Server中连接的最佳实践?

C# SQL Server中连接的最佳实践?,c#,sql,sql-server,concatenation,C#,Sql,Sql Server,Concatenation,我的行在某一列中有一个NVARCHAR值。我希望能够连接到这个值上,例如,如果行存储“Hello”,我希望能够运行db.Execute命令以保持“Hello”和标记在“my name is Earl”上,以便在行中存储“Hello,my name is Earl” 这样做的最佳实践是什么 db.Execute("UPDATE table SET description = description + '--@0 likes this' WHERE id = @1",user, id); 这不接

我的行在某一列中有一个NVARCHAR值。我希望能够连接到这个值上,例如,如果行存储“Hello”,我希望能够运行db.Execute命令以保持“Hello”和标记在“my name is Earl”上,以便在行中存储“Hello,my name is Earl”

这样做的最佳实践是什么

db.Execute("UPDATE table SET description = description + '--@0 likes this' WHERE id = @1",user, id);

这不接受参数,实际上会将@0和@1插入数据库。这是为什么?

如果您有一个表myTable,其中有一个要连接的消息列,并且行id为5

UPDATE myTable
SET message = concat(message, N' my name is earl')
WHERE id = 5;  -- some where condition that identifies row(s)

如果您有一个表myTable,其中有一个要连接的消息列,并且行id为5

UPDATE myTable
SET message = concat(message, N' my name is earl')
WHERE id = 5;  -- some where condition that identifies row(s)

只是猜测一下,但请尝试将
@0
从单引号中移出:

db.Execute(@"
    UPDATE table 
    SET description = description + @0 + ' likes this' 
    WHERE id = @1",user, id); 

只是猜测一下,但请尝试将
@0
从单引号中移出:

db.Execute(@"
    UPDATE table 
    SET description = description + @0 + ' likes this' 
    WHERE id = @1",user, id); 

不能使用包含连接的视图来查询数据吗?也就是说,以“纯”的形式存储它,并以不太纯的形式查询它。或者您可以使用触发器-对象的类型是什么<代码>Webmatrix.Data.Database?是的,它是Webmatrix.Data.Database。通过调用var db=Database.Open(“数据库”)初始化;不能使用包含连接的视图来查询数据吗?也就是说,以“纯”的形式存储它,并以不太纯的形式查询它。或者您可以使用触发器-对象的类型是什么<代码>Webmatrix.Data.Database?是的,它是Webmatrix.Data.Database。通过调用var db=Database.Open(“数据库”)初始化;这是干什么的?我以前从未见过这种表示法:)
N'string'
用于nvarchar表示,而不是
'string'
的varchar。当我尝试此方法时,会出现错误“concat”不是可识别的内置函数名”。然而,当我尝试上面的代码时,参数没有传递到查询中。我不认为这是OP遇到的问题。。。他的查询没有被正确的参数化,不管他是如何连接的。我将在这里把它作为不正确的答案保留(所以其他人的答案不一样),然后明天在正确的答案后删除…这里的N'是用来做什么的?我以前从未见过这种表示法:)
N'string'
用于nvarchar表示,而不是
'string'
的varchar。当我尝试此方法时,会出现错误“concat”不是可识别的内置函数名”。然而,当我尝试上面的代码时,参数没有传递到查询中。我不认为这是OP遇到的问题。。。他的查询没有被正确的参数化,不管他是如何连接的。我将在这里留下这个错误的答案(所以其他人的答案不一样),然后明天在正确答案后删除…Facepalm。当然,这解决了它!谢谢你的回答;为我的愚蠢辩护,那是凌晨2点脸掌。当然,这解决了它!谢谢你的回答;为我的愚蠢辩护,那是凌晨2点