zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    74.Android之四种启动模式
    Android面试总结 (转)
    1.Android常见异常:android.view.WindowLeaked 分析以及解决办法
    73.Android之SparseArray替代HashMap
    C#(类)
    C#(一维数组)
    C#(二维数组/集合)
    c#(特殊集合)
    C#字符串去除html格式
    获取文件的后缀名 和 Process进程
  • 原文地址:https://www.cnblogs.com/90nice/p/3386039.html
Copyright © 2011-2022 走看看