ado.net 执行sql存储过程

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

public partial class Main : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        int totalpage;
        List<StuInfo> List = new List<StuInfo>();
        gv_stu.DataSource = GetStuInfo(10, 2, ‘ ‘, out totalpage);
        gv_stu.DataBind();
    }
    public List<StuInfo> GetStuInfo(int pagesize,int currentpage,string condition,out int totalpage)
    {
        List<StuInfo> List = new List<StuInfo>();
        //string sqlconstr = "Data Source=.;Initial Catalog=Example;User ID=sa;Password=123456";
        string sqlconstr = "Data Source=.;Initial Catalog=Example;Integrated Security=true";
        string sql = "proc_GetStuInfo";
        SqlConnection con = new SqlConnection(sqlconstr);
        SqlCommand cmd = new SqlCommand(sql, con);
        cmd.CommandType = CommandType.StoredProcedure;
        con.Open();
        SqlDataReader sdr = cmd.ExecuteReader();
        SqlParameter[] para = {
                                  new SqlParameter("@pagesize",pagesize),
                                  new SqlParameter("@currentpage",currentpage),
                                  new SqlParameter("@condition",condition),
                                  new SqlParameter("@pagesize",SqlDbType.Int)
                              };
        para[3].Direction = ParameterDirection.Output;
        cmd.Parameters.AddRange(para);
        {
            while(sdr.Read())
            {
                StuInfo stu = new StuInfo();
                stu.Stuid = sdr["stuid"].ToString();
                stu.Stuname = sdr["stuname"].ToString();
                stu.Age = Convert.ToInt32(sdr["age"]);
                stu.Address = sdr["address"].ToString();
                List.Add(stu);
            }
        }
        con.Close();
        totalpage =Convert.ToInt32(para[3].Value);
        return List;
    }
}
时间: 2024-10-24 11:03:53

ado.net 执行sql存储过程的相关文章

EF6.0执行sql存储过程案例

数据填充实体:ZF_Btns; 存储过程名称:test; --方式一: db.Database.SqlQuery<ZF_Btns>("test @Id,@UName output",sqlparameters[]); --方式二: db.Database.SqlQuery<ZF_Btns>("EXEC [dbo].[test] @Id,@UName output",sqlparameters[]);

MySQL-存储过程动态执行sql

存储过程动态执行sql --存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数 create procedure p_procedurecode(in sumdate varchar(10)) begin declare v_sql varchar(500); --需要执行的SQL语句 declare sym varchar(6); declare var1 varchar(20); declare var2 varchar(70); declare var

ADO.NET链接执行SQL的小白思路

ado.net 主要就是访问数据源  数据源就是数据库和数据库里面的东西针对不同的数据库ADO.NET会使用不同的方式去链接 ADO首先链接数据库 然后执行增删改查 关闭 清理资源 引入命名空间----找到数据库(链接字符串)----实例化链接的对象 ------connection对象去建立连接-------打开链接 -------command命令对象,执行SQL.关闭 过程 1:引入命名空间using System .data . SqlClient; 2: 链接服务器/数据库/--登陆

ADO.NET——Command(执行SQL) &amp; DataReader(读取数据库)

一,关于两个对象的基础知识 1,Command Command对象主要用于对数据源执行SQL命令并返回结果. ADO.NET提供了Connection来连接数据库,同时也提供了Command对象来查询数据库.同Connection对象一样,Command也有两种:OleDbCommand和SqlCommand.其区别同Connection对象. Command对象有一个属性:CommandType(sql语句或者存储过程):三个重要方法:ExecuteNonQuery(增.删.改影响的行数).E

MySQL之视图、存储过程、触发器、函数、事务、动态执行SQL

视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 创建视图: create view v1 as select * from student where id > 100; 今后可以直接通过: select * from v1;   #直接访问学生ID大于100的信息 删除视图: drop view v1; 修改视图: alter view v1 as select id,name f

EF执行SQL语句和存储过程

EF虽然使用对象化的方式避免了我们写SQL,但是对于部分SQL,例如需要复杂的查询.执行插入和删除等可以操作,直接执行SQL可以减少减少性能上的损失. 使用EF执行SQL可以通过ExecuteSqlCommand()和SqlQuery()两个方法.这两个方法适用场景如下: ExecuteSqlCommand()不返回执行的结果,只返回受影响的行数,所以适用于数据库修改,数据创建,更新和删除等操作: SqlQuery()则会返回查询到的结果,并将结果保存在数据实体中: 使用ExecuteSqlCo

使用EntityFrameWork 5.0面向存储过程(&amp;执行Sql,性能优化)

EntityFrameWork5.0简单使用 概要: 使用EntityFrameWork5.0执行存储过程,Sql语句(DDL/DML)以及一点关于优化性能的方面; 正文: 在myef.tt下会包含需要展示数据的存储过程(select) 模型浏览器如下, 1.EF如何调用存储过程: Note:数据库的表对应的实体,以类对象表示,在EF容器下可以直接操作,比如db.UserAccount直接拿到UserAccount实体对象,存储过程,视图也是同样道理,也是可以通过EF上下文容器得到; 2.EF执

存储过程中动态执行SQL并获取返回结果

很久没有写存储过程了,因为存储过程违背OOP精神,话说带了参数的存储过程,如果业务需求改变,改存储过程还真的挺麻烦的.所以现在比较倾向于负责的业务逻辑在业务层去处理,业务层专门做业务层的事情. 通过一层巧妙地包装,动态执行SQL语句就解决了 ALTER procedure [dbo].[PROC_NextSteps] ( @Count int, @IDS NVARCHAR(500), @Rules NVARCHAR(MAX), @IDSOut NVARCHAR(500) OUT ) as BEG

MySQL存储过程实现动态执行SQL

--存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数 create procedure p_procedurecode(in sumdate varchar(10)) begin declare v_sql varchar(500); --需要执行的SQL语句 declare sym varchar(6); declare var1 varchar(20); declare var2 varchar(70); declare var3 integer; -