C# 如何修复';数据类型datetime和uniqueidentifier在add运算符中不兼容;
运行update命令时出错。-数据类型datetime和uniqueidentifier在add运算符中不兼容。C# 如何修复';数据类型datetime和uniqueidentifier在add运算符中不兼容;,c#,sql,.net,sql-server,database,C#,Sql,.net,Sql Server,Database,运行update命令时出错。-数据类型datetime和uniqueidentifier在add运算符中不兼容。 有人能帮忙吗?我认为您应该使用日期和id值的查询参数,而不是在查询字符串中咀嚼它们 这看起来像: DECLARE @caseId UNIQUEIDENTIFIER, @fieldId UNIQUEIDENTIFIER, @columnName NVARCHAR(MAX), @dateValue DATETIME, @tableName nvarchar
有人能帮忙吗?我认为您应该使用日期和id值的查询参数,而不是在查询字符串中咀嚼它们 这看起来像:
DECLARE @caseId UNIQUEIDENTIFIER,
@fieldId UNIQUEIDENTIFIER,
@columnName NVARCHAR(MAX),
@dateValue DATETIME,
@tableName nvarchar(MAX);
set @command = 'update ' + @tableName + ' set ' + @columnName + ' = ' + @dateValue + ' where Id = ''' + @caseId + '''';
exec sp_executesql @command;
试试这个:
declare
@pCaseId UNIQUEIDENTIFIER,
@pFieldId UNIQUEIDENTIFIER,
@pColumnName NVARCHAR(MAX),
@pDateValue DATETIME,
@pTableName nvarchar(MAX);
set @command = 'update ' + @pTableName + ' set ' + @pColumnName + ' = @dateValue where Id = @caseId';
exec sp_executesql
@command,
N'@dateValue DATETIME, @caseId UNIQUEIDENTIFIER',
@pDateValue,
@pCaseId
;
我们可以看到表的定义和插入变量的值吗?如果要用datetime更新nvarchar列,请尝试用nvarchar转换datetime变量
DECLARE @caseId UNIQUEIDENTIFIER,
@fieldId UNIQUEIDENTIFIER,
@columnName NVARCHAR(MAX),
@dateValue DATETIME,
@tableName nvarchar(MAX);
set @command = 'update ' + @tableName + ' set ' + @columnName + ' = ' +convert(nvarchar(100),@dateValue,120) + ' where Id = ''' + @caseId + '''';
exec sp_executesql @command;