在为存储过程设置参数时,可以在 new SqlParameter 的构造函数中设置 TypeName 吗?

Sam*_*tar 2 c# sql-server asp.net

我使用以下代码来设置调用存储过程的参数:

        List<SqlParameter> parameterList = new List<SqlParameter>();
        parameterList.Add(new SqlParameter("@Title", adminTest.Title));
        parameterList.Add(new SqlParameter("@Text", adminTest.Text));

        var questionsList = new SqlParameter("@Questions", questions);
        questionsList.TypeName = "dbo.QuestionList";
        parameterList.Add(questionsList);
Run Code Online (Sandbox Code Playgroud)

该代码片段有效,但我想知道是否有人找到了TypeName在新的 SqlParameter 构造函数中设置 的方法?我尝试查看文档,但我唯一能找到的就是之后添加类型名。

Dan*_*man 5

您可以使用初始值设定项来完成此操作。下面的示例指定了强类型参数和变量值的最大长度,从 SQL 性能角度来看,这是一个很好的实践。

    List<SqlParameter> parameterList = new List<SqlParameter>()
        {
            new SqlParameter("@Title", SqlDbType.VarChar) {Size = 30, Value = adminTest.Title},
            new SqlParameter("@Text", SqlDbType.VarChar) {Size = 30, Value = adminTest.Text},
            new SqlParameter("@Questions", SqlDbType.Structured) {TypeName = "dbo.QuestionList", Value = questions}
        };
Run Code Online (Sandbox Code Playgroud)