![]() | CYQ.Data 数据层框架CYQ.Data 是一款由路过秋天创作的支持多数据库应用[Txt,Xml,Access,MSSQL,Oracle,SQLite,MySql]的底层数据库操作类库,使用本类库可以轻松快速开发项目(QQ群:6033006)。 |
CYQ.Data 数据框架 使用篇五 MProc 存储过程与SQL
快速使用帮助 |
|
|
| #楼主 |
本节内容: 本篇继续上一篇内容,本节介绍MProc 类的相关操作。 1:MProc 存储过程操作 2:MProc SQL执行操作 一:构造函数 方法原型: public MProc(object procNamesEnum) public MProc(object procName, string conn) 说明: 构造函数和MAction用法一致,相关操作可参数MAction。 示例1:传入存储过程名称 //传入存储过程名称 默认取配置项Conn的数据库链接 MProc proc = new MProc(ProcNames.GetUserList);//通过枚举传入 示例2:传入存储过程名称及自定义数据库链接 ![]() ![]() //传入数据库新的数据库链接 配置项Conn MProc proc = new MProc("GetUserList","ChatConn"); //传入数据库新的数据库链接 直接链接字符串 MProc proc = new MProc("GetUserList","Server=.;database=Chat;uid=sa;pwd=xxxxx"); //多数据库下用约定名称 取自ChatConn配置项的链接 MProc proc = new MProc(P_ChatEnum.GetUserList); 示例3:传入SQL语句 说明:仅在V1.5版本以上支持。 //执行自定义SQL 语句 默认取自Conn配置项数据库链接 MProc proc = new MProc("select * from Users"); //执行自定义SQL 语句 取自ChatConn配置项数据库链接 MProc proc = new MProc("select * from Users","ChatConn"); 二:参数化操作 方法原型: public void Set(object paraName, object value) public void Set(object paraName, object value,SqlDbType sqlDbType) public MProc SetCustom(object paraName, ParaType paraType, object value) public void Clear() 示例1: //为存储过程或参数化SQL语句的设置参数 proc.Set(GetUserList.ID, 888);//枚举方式传递 示例2: proc.Set(Users.ID, 888,SqlDbType.Int);//比上个示例多加了个参数。 示例3: proc.Clear();//清除所有Set的参数。 三:方法操作 方法原型: public MDataTable ExeMDataTable() //列表查询 public List<MDataTable> ExeMDataTableList()//查询多个列表 public int ExeNonQuery() //添加/更新/删除 public T ExeScalar<T>() //返回首行首列单个值 示例1: MDataTable table = proc.ExeMDataTable();//执行返回MDataTable 示例2: int result = proc.ExeNonQuery();//添加、更新、删除操作,返回受影响的行数。 示例3: string result = proc.ExeScalar<string>();//执行语句,返回首行首列的值。 四:返回值与链接关闭 方法原型: public int ReturnValue public void Close() 示例1: MDataTable table= proc.ExeMDataTable(); int value = proc.ReturnValue;//执行的如果是存储过程,取返回值,通过是记录总数。 示例:手动型关闭链接 MProc proc = new MProc(ProcNames.GetList); MDataTable table= proc.ExeMDataTable(); int value = proc.ReturnValue; proc.Close();//执行完后关闭数据库链接 五:一个完整示例 示例: 使用示例:
实例化: using(MProc proc = new MProc(ProcNames.GetList)) { 添加参数: proc.Set(GetList.ID, 10); proc.SetCustom("ReturnValue", ParaType.ReturnValue); proc.SetCustom("ReturnValue", ParaType.OutPut);
获取列表: MDataTable table = proc.ExeMDataTable(); 取返回值: int count=proc.ReturnValue;
object outPutValue=proc.OutPutValue; 绑定控件: table.Bind(GridView1); } ![]() |
游客[注册][121.9.14.*]2014/8/15 14:50:28 | #2 | |
![]() | public static int ProcNonQuery(string sSql) { int iReturn; using (MProc mp = new MProc(sSql)) { iReturn = mp.ExeNonQuery(); mp.Close(); } return iReturn; } 执行删表操作失败!ProcNonQuery("Drop table [test1]"); 请教如何调用,数据库为access 回复: 早期版本对SQL进行严格的限制,所以不能操作删除表操作,最新版本放松了限制,可以执行任意的语句了。 |
游客[注册][125.77.202.*]2014/5/26 16:33:22 | #1 | |
![]() | ALTER procedure [dbo].[Proc_Common_GetDataByPage] ( @TableName nvarchar(500), --数据表名称 @Fields nvarchar(500)='*', --查询的字段列表 @StrWhere nvarchar(1000)='', --查询条件 @StrOrder nvarchar(100)='', --排序字段列表 @PageIndex int=1, --当前页指针 @PageSize int=10, --每页显示的记录数 @RecordCount int=0 output --返回总记录数 ) mproc执行存储过程如何返回RecordCount有值,用proc.ReturnValue返回怎么都是0 回复: 应该取proc.OutPutValue |
发表评论
论坛公告
帖子搜索
最新帖子
最新评论
- 请教博主。我mysql的提示 V5.7.7.4 MySql.xxxx:check the tablename "tbl_site_info" is exist? error:ExeDataReader():Expression #1 of ORDER BY clause is not in SELECT list, references column 'information_schema.s1.ORDINAL_POSITION' which is not in SELECT list; this is incompatible with DISTINCT 配置如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="Conn" connectionString="host=192.168.3.101;Port=3306;Database=xxxxx;uid=root;pwd=2017" providerName="MySql.Data.MySqlClient"/> </connectionStrings> </configuration>
- 查询语句有点问题,软件启动时查询语句可以从数据库查询出数据,软件一直运行时无论怎么修改数据库,查询出来的还是老数据,不知道是为什么
- 我语句中用到了union all而且两个查询都有查询条件,action.select总是不成功,不知道有没有什么好的解决办法,谢谢
- 大神,如果我想通过一个对象(从数据映射过来的)要插入的话,我需要遍历字段然后每个set一下吗?有没有更好的方法??
- 真心好用,想问下秋天直接拼写sql怕注入吗
- V4.5后,好多方法都改变了,求来个新的日志帮助
- 請問大神V5源碼要多少錢 我是和交流過的
- 楼主,,从数据库里查出来并绑定datagridview,但是显示的都是数据库里的英文名,怎么改??好纠结啊这个。。。。
- 我想问一下,主从表添加怎样处理
- 10年就过了!!!!