Ado调用存储过程

Posted ly-03-04

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ado调用存储过程相关的知识,希望对你有一定的参考价值。

  public ReturnModel GetStudent(string json)
        {
            ParamsModel model = JsonConvert.DeserializeObject<ParamsModel>(json);

            //连接对象
            using (SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["StudentConn"].ToString()))
            {
                //命令对象
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.StoredProcedure;//存储过程类型
                cmd.CommandText = "proc_Page";//存储过程名称
                //参数  ParameterName参数名字   SqlDbType参数类型   SqlValue参数值  Direction参数描述(输出、输入)
                SqlParameter[] sqls = new SqlParameter[] {
                    new SqlParameter{ ParameterName="BigScore", SqlDbType=SqlDbType.Int,SqlValue=model.BigScore },
                    new SqlParameter{ ParameterName="CID", SqlDbType=SqlDbType.Int,SqlValue=model.CID },
                    new SqlParameter{ ParameterName="ClaId", SqlDbType=SqlDbType.Int,SqlValue=model.ClaId },
                    new SqlParameter{ ParameterName="order", SqlDbType=SqlDbType.Int,SqlValue=model.order },
                    new SqlParameter{ ParameterName="PageIndex", SqlDbType=SqlDbType.Int,SqlValue=model.PageIndex },
                    new SqlParameter{ ParameterName="PageSize", SqlDbType=SqlDbType.Int,SqlValue=model.PageSize },
                    new SqlParameter{ ParameterName="Sage", SqlDbType=SqlDbType.VarChar,SqlValue=model.Sage },
                    new SqlParameter{ ParameterName="SmallScore", SqlDbType=SqlDbType.Int,SqlValue=model.SmallScore },
                    new SqlParameter{ ParameterName="Sname", SqlDbType=SqlDbType.VarChar,Size=20,SqlValue=model.Sname },
                    new SqlParameter{ ParameterName="Tname", SqlDbType=SqlDbType.VarChar,Size=20,SqlValue=model.Tname },
                    new SqlParameter{ ParameterName="TotalCount", SqlDbType=SqlDbType.Int, Direction=ParameterDirection.Output},
                };
                cmd.Parameters.AddRange(sqls);
                //适配器
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable("Student");
                sda.Fill(dt);
                //总条数
                int totalCount = Convert.ToInt32(cmd.Parameters["TotalCount"].Value);

                ReturnModel returnModel = new ReturnModel
                {
                    Dt = dt,
                    TotalCount= totalCount
                };
              return returnModel;
            }
        }

 

以上是关于Ado调用存储过程的主要内容,如果未能解决你的问题,请参考以下文章

Ado调用存储过程

ADO调用分页查询存储过程

ADO.NET 调用 T-SQL 存储过程会导致 SqlTimeoutException

通过 ADO.Net 命令调用 Informix 存储过程的最佳/正确方法?

delphi怎样在ADO里用ADOproc调用数据库sql server存储过程?,用ADODATASET或者ADOQUERY又怎样调用存储过程?

ADO存储过程中使用误区