存储过程,ExecuteScalar和参数

时间:2013-02-19 18:48:27

标签: .net sql stored-procedures sqlparameters

我有一个存储过程,我称之为:

string proc = "SpCreate '00111', 3";

 using (SqlCommand command = new SqlCommand(proc, conn))
 {
       command.CommandType = CommandType.Text;
       command.CommandTimeout = 1000;

       string returnCode = command.ExecuteScalar().ToString();
 }

以上gode工作正常。但是一旦我添加了一个参数,我就会在“SpCreate”附近得到错误的语法。是什么赋予了? (以下代码会导致错误。)

string proc = "SpCreate '00111', @myId";

 using (SqlCommand command = new SqlCommand(proc, conn))
 {
       SqlParameter paramName = new SqlParameter("@myId", SqlDbType.Int) { Value = 3 };
       command.Parameters.Add(paramName);

       command.CommandType = CommandType.Text;
       command.CommandTimeout = 1000;

       string returnCode = command.ExecuteScalar().ToString();
 }

1 个答案:

答案 0 :(得分:0)

在查看我自己的一些代码并意识到我遇到了一些错误之后编辑了我的答案。

您需要将CommandType设置为StoredProcedure。

编辑:添加了示例源代码

 string proc = "SpCreate";

 using (SqlCommand command = new SqlCommand(proc, conn))
 {
       SqlParameter paramName = new SqlParameter("@myId", SqlDbType.Int);
       paramName.Value = 3;
       command.Parameters.Add(paramName);

       command.CommandType = CommandType.StoredProcedure;
       command.CommandTimeout = 1000;

       string returnCode = command.ExecuteScalar().ToString();
 }