• asp.net 存储过程 输出参数 取不到值


    这是MSDN上的明确解释:
    当您将 Command 对象用于存储过程时,可以将 Command 对象的 CommandType 属性设置为 StoredProcedure。当 CommandType 为 StoredProcedure 时,可以使用 Command 的 Parameters 属性来访问输入及输出参数和返回值。无论调用哪一个 Execute 方法,都可以访问 Parameters 属性。但是,当调用 ExecuteReader 时,在 DataReader 关闭之前,将无法访问返回值和输出参数。

    所以取不到值的原因是 在dataReader 之前取值的。NND 着什么急呀,我放后面取值不就行了。艹。

    sqlStr = "Proc_Search";
    SqlConnection conn = new SqlConnection(connStr);
    SqlCommand comm = new SqlCommand();
    comm.CommandText = sqlStr;
    comm.CommandType = CommandType.StoredProcedure;
    comm.Connection = conn;
    if (conn.State != ConnectionState.Open)
    conn.Open();
    comm.Parameters.Add("@skey", SqlDbType.VarChar, 50).Value = key;
    comm.Parameters.Add("@start", SqlDbType.Int).Value = start;
    comm.Parameters.Add("@limit", SqlDbType.Int).Value = limit;
    SqlParameter sp = new SqlParameter("@allCount",SqlDbType.Int);
    sp.Direction = ParameterDirection.Output;
    comm.Parameters.Add(sp);
    SqlDataReader dr = comm.ExecuteReader(CommandBehavior.CloseConnection);

    while (dr.Read())
    {
    DataList dl = new DataList();
    dl.INSERT_DATE = dr["D"].ToString();
    dl.TITLE = dr["TITLE"].ToString();
    dl.TEXT1 = dr["CONTENT"].ToString();
    dl.URL = dr["URL"].ToString();
    dl.TEXT2 = dr["T"].ToString();
    list.Add(dl);
    }
    dr.Close();
    var v = sp.Value;

  • 相关阅读:
    🔥低代码音视频开发训练营火热报名中!
    编解码再进化:Ali266 与下一代视频技术
    ICCV 2021口罩人物身份鉴别全球挑战赛冠军方案分享
    提升 RTC 音频体验 从搞懂硬件开始
    只要你有目标,只要你肯努力,成功只是时间问题
    安全感到底来自何方
    工作经验小结
    女人的出路在何方?
    那些以为过去了的
    初出茅庐
  • 原文地址:https://www.cnblogs.com/90nice/p/3386039.html
Copyright © 2020-2023  润新知