C# 使用动态SQL将参数视为列名,而不是列值
这是我第一次来这里,我想问一个问题 这是我的存储过程C# 使用动态SQL将参数视为列名,而不是列值,c#,asp.net,sql,dynamic,C#,Asp.net,Sql,Dynamic,这是我第一次来这里,我想问一个问题 这是我的存储过程 ALTER procedure [dbo].[GetDataFromTable] @tablename sysname, @DocumentName nvarchar(50), @Uploader nvarchar(50) as begin if @tablename = 'Document_Data' EXEC('Select * from Document_Data where DocumentName = ('+ @Document
ALTER procedure [dbo].[GetDataFromTable]
@tablename sysname,
@DocumentName nvarchar(50),
@Uploader nvarchar(50)
as
begin
if @tablename = 'Document_Data'
EXEC('Select * from Document_Data where DocumentName = ('+ @DocumentName +') and Uploader = ('+ @Uploader +')')
end
问题是。。。存储过程将DocumentName和Uploader参数读取为列名,而不是值本身。我已经尝试过使用别名和其他我从互联网上搜索到的东西,但是它们不起作用
这背后可能有什么问题?哦,顺便说一句,我是动态SQL的新手。谢谢。您应该在参数前后添加'
字符,如下所示:
ALTER procedure [dbo].[GetDataFromTable]
@tablename sysname,
@DocumentName nvarchar(50),
@Uploader nvarchar(50)
as
begin
if @tablename = 'Document_Data'
EXEC('Select * from Document_Data where DocumentName = ('''+ @DocumentName +''') and Uploader = ('''+ @Uploader +''')')
end
您应该在参数前后添加'
字符,如下所示:
ALTER procedure [dbo].[GetDataFromTable]
@tablename sysname,
@DocumentName nvarchar(50),
@Uploader nvarchar(50)
as
begin
if @tablename = 'Document_Data'
EXEC('Select * from Document_Data where DocumentName = ('''+ @DocumentName +''') and Uploader = ('''+ @Uploader +''')')
end
谢谢你,好心的先生。我之前没这么想。谢谢我该如何看待这个答案?@JephElijay如果答案对你有帮助,不要忘记接受答案来结束问题,结束问题。您也可以投票支持答案。@JephElijay谢谢!谢谢你,好心的先生。我之前没这么想。谢谢我该如何看待这个答案?@JephElijay如果答案对你有帮助,不要忘记接受答案来结束问题,结束问题。您也可以投票支持答案。@JephElijay谢谢!