【发布时间】:2015-02-07 17:04:18
【问题描述】:
我有一个返回字符串的存储过程:
DECLARE @SqlStatement VARCHAR(MAX)
SELECT @SqlStatement =
COALESCE(@SqlStatement, '') + 'DROP TABLE [TMP].' + QUOTENAME(TABLE_NAME) + ';' + CHAR(13)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'TMP'
PRINT @SqlStatement
我尝试像这样返回字符串:
var con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBBASE"].ConnectionString);
using (var cmd = new SqlCommand("proSQL", con)
{
CommandType = CommandType.StoredProcedure
})
{
cmd.Parameters.Add("SqlStatement", SqlDbType.VarChar);
var returnParameter = cmd.Parameters.Add("@SqlStatement", SqlDbType.VarChar);
returnParameter.Direction = ParameterDirection.Output;
con.Open();
cmd.ExecuteNonQuery();
var result = returnParameter.Value;
}
当我运行代码时,我得到了错误:
过程 proSQL 没有提供参数和参数
我不确定我做错了什么。有人能告诉我如何以字符串格式获取存储过程的输出吗?
【问题讨论】:
-
@ReturnVal在哪里是 SP -
@Ganesh_Devlekar 没有,只是编辑了问题
-
我也想过退货,但没有。改用 returnParameter.Direction = ParameterDirection.Output
-
@Jauch 您确实在存储过程中提到了输出参数...请粘贴整个 SP
-
存储过程不返回任何内容。无论如何,在 TSQL 中进行字符串连接有什么意义?
标签: c# sql-server tsql stored-procedures sqlcommand