不同的数据库SQL语法有一定区别,当前例子是SqlServer的
转成list
List<Student> list1 = db.SqlQuery<Student>("select * from Student");
转成list带参
List<Student> list2 = db.SqlQuery<Student>("select * from Student where id=@id", new { id = 1 });
转成dynamic
dynamic list3 = db.SqlQueryDynamic("select * from student");
转成json
string list4 = db.SqlQueryJson("select * from student");
返回int
var list5 = db.SqlQuery<int>("select top 1 id from Student").SingleOrDefault();
反回键值
Dictionary<string, string> list6 = db.SqlQuery<KeyValuePair<string, string>>("select id,name from Student").ToDictionary(it => it.Key, it => it.Value);
反回List<string[]>
var list7 = db.SqlQuery<string[]>("select top 1 id,name from Student").SingleOrDefault();
存储过程
var spResult = db.SqlQuery<School>("exec sp_school @p1,@p2", new { p1 = 1, p2 = 2 }); //存储过程加Output var pars = SqlSugarTool.GetParameters(new { p1 = 1,p2=0 }); //将匿名对象转成SqlParameter db.IsClearParameters = false;//禁止清除参数 pars[1].Direction = ParameterDirection.Output; //将p2设为 output var spResult2 = db.SqlQuery<School>("exec sp_school @p1,@p2 output", pars); db.IsClearParameters = true;//启用清除参数 var outPutValue = pars[1].Value;//获取output @p2的值 //存储过程优化操作 var pars2 = SqlSugarTool.GetParameters(new { p1 = 1, p2 = 0 }); //将匿名对象转成SqlParameter db.CommandType = CommandType.StoredProcedure;//指定为存储过程可比上面少写EXEC和参数 var spResult3 = db.SqlQuery<School>("sp_school", pars2); db.CommandType = CommandType.Text;//还原回默认
获取第一行第一列的值
string v1 = db.GetString("select '张三' as name"); int v2 = db.GetInt("select 1 as name"); double v3 = db.GetDouble("select 1 as name"); decimal v4 = db.GetDecimal("select 1 as name");
更多底层函数
//获取DataTable var dt = db.GetDataTable("select * from student"); //获取DataSet var ds = db.GetDataSetAll("select * from student"); //获取单条 var r2 = db.GetSingle<Student>("select top 1 * from student"); //获取首行首列 var r3 = db.GetScalar("select count(1) from student"); //获取DR var r4 = db.GetReader("select count(1) from student"); r4.Dispose(); var r5 = db.GetString("select top 1 name from student"); //执行SQL返回受影响行数 var r6 = db.ExecuteCommand("select 1");
2016 © CodeIsBug.comApache Licence 2.0