原生Sql操作

下面的方法支持复杂的Sql 包括 返回多个结果集 、存储过程等  、可以理解为了一个高级DbHelper


1、用法介绍

//调用Sql
db.Ado.具体方法

//调用存储过程
db.Ado.UseStoredProcedure().具体方法


2、调用Sql

//参数1
var dt=db.Ado.GetDataTable("select * from table where id=@id and name=@name",new List<SugarParameter>(){
  new SugarParameter("@id",1),
  new SugarParameter("@name",2)
});

//参数2
var dt=db.Ado.GetDataTable("select * from table where id=@id and name=@name",new{id=1,name=2});


3、 调用存储过程

//简单用法
var dt = db.Ado.UseStoredProcedure().GetDataTable("sp_school",new{name="张三",age=0}); 



//带有output的存储过程
var nameP= new SugarParameter("@name", "张三");
var ageP= new SugarParameter("@age", null, true);//设置为output
var dt = db.Ado.UseStoredProcedure().GetDataTable("sp_school",nameP,ageP);
//ageP.Value可以拿到output值
//Oracle 游标参数用法  http://www.codeisbug.com/Home/Doc?typeId=1220


4、in参数用法

 var dt = db.Ado.SqlQuery<Order>(
                      "select * from [order] where  id in(@ids)",
                       new { ids = new int[] { 1,2,3} });
 //select * from [order] where  id in('1','2','3')


5、db.Ado下面的所有方法

用法和上面一样只是方法名换一下

方法名描述返回值
SqlQuery< T >查询所有返回实体集合List
SqlQuery<T,T2>可以返回2个结果集Tuple<List, List>
SqlQuerySingle查询第一条记录T
GetDataTable查询所有DataTable
GetDataReader读取DR需要手动释放DRDataReader
GetDataSetAll获取多个结果集DataSet
ExecuteCommand返回受影响行数,一般用于增删改int
GetScalar获取首行首列object
GetString获取首行首列string
GetInt获取首行首列int
GetLong获取首行首列long
GetDouble获取首行首列Double
GetDecimal获取首行首列Decimal
GetDateTime获取首行首列DateTime