错误:不允许使用默认参数说明符

时间:2015-08-24 09:01:05

标签: c# asp.net stored-procedures

在第一个第二行字符串SqlOutputParameterName = "MSG"中 - 我发现此错误。我使用的是3.5框架。如何解决这个问题

 public static DataTable JobsGetAll()
 {
      //SqlParameter[] CmdParamColl = new SqlParameter[1];
      string StoredProcedure = "GetJobsAll";
      //DataConnectSql.DataConnectParametersAdd(ref CmdParamColl, "@WebName", SqlDbType.VarChar, ParameterDirection.Input, ApplicationName, 0, 500);
      return DataConnectSql.DataConnectResultDataTable(CommandType.StoredProcedure, StoredProcedure);
 } 

 public static DataTable DataConnectResultDataTable(CommandType CmdType, string CmdText)
 {
    SqlCommand CmdExec = new SqlCommand();
    DataTable DtResult = new DataTable();

    try
    {
        CmdExec.Connection = DataConnectionOpen();
        CmdExec.CommandType = CmdType;
        CmdExec.CommandText = CmdText;
        SqlDataAdapter DapResult = new SqlDataAdapter(CmdExec);
        DapResult.Fill(DtResult);
    }
    catch (Exception)
    {
        DtResult = null;
        //throw;
    }
    finally { CmdExec.Connection.Close(); }

    return DtResult;
}

1 个答案:

答案 0 :(得分:1)

在执行查询之前,您没有指定输出参数 在try块之前添加以下代码:

CmdExec.Parameters.Add("@" + SqlOutputParameterName, SqlDbType.VarChar).Direction = ParameterDirection.Output;

在上下文中:

public static string DataConnectExecuteNonQuery(CommandType CmdType, string CmdText, string SqlOutputParameterName = "Msg")
{
    SqlCommand CmdExec = new SqlCommand();
    CmdExec.Connection = DataConnectionOpen();
    CmdExec.CommandType = CmdType;
    CmdExec.CommandText = CmdText;
    CmdExec.Parameters.Add("@" + SqlOutputParameterName, SqlDbType.VarChar).Direction = ParameterDirection.Output; //** HERE **//
    string msg;
    try
    {
         CmdExec.ExecuteNonQuery();
         msg = CmdExec.Parameters["@" + SqlOutputParameterName].Value.ToString();
    }
}