注:以下方法为v4.0.13版本新增,之前的版本升级后才能使用以下方法。
1、执行sql命令
Html.SqlExecute(string sql,dynamic sqlParameters=null)
实例:制作一个更新新闻点击数的api模板。
@{ Layout = null; Html.SqlExecute("update news set clicks=clicks+1 where id=@id", new {id=1}); var result = new { State = 1, Msg = "更新成功" }; Html.ResponseJson(result);//输出json对象方便前端通过ajax获取 }
2、通过sql读取数据表中的一条数据,返回值为对象。
Html.SqlQueryFirst(string sql,dynamic sqlParameters=null)
3、通过sql读取数据,返回值为集合。
Html.SqlQuery(string sql,dynamic sqlParameters=null)
4、根据表名、字段名和id获取数据,返回值为对象。
Html.GetData(string table,string fields,string sqlCondition,dynamic sqlParameters=null,string orderBy=null)
注:fields可为null或*,表示读取所有字段,为提升效率,建议只设置需要读取的字段,多个字段可用半角逗号隔开,以下方法也遵循此条规则。
实例:获取新闻表的id=1的数据,并读取title和content两个字段的值。
@{ Layout = null; var newwData=Html.GetData("news","title,content","id=@id",new {id=1}); if(newwData!=null) //判断是否有数据 { var title=newwData.Title;//获取title字段值,注意,这里title首字符大写。 var content=newwData.Content;//获取content字段值 } }
5、根据表名和条件获取字段值,返回object对象值
Html.GetField(string table,string field,string sqlCondition, dynamic sqlParameters = null)
实例:获取新闻表的点击量字段值
@{ Layout = null; var clickObj=Html.SqlExecute("news","clicks","id=@id",new {id=1}); int clicks=(int)clicks;//转为int类型,注意要保证字段是数值类型 string clicksString=clickObj?.ToString();//转为string字符串类型 }
6、根据表名和条件获取数据总数,返回int数值
Html.GetCount(string table, string sqlCondition, dynamic sqlParameters = null)
实例:获取发布人uid为1,并且已审核的新闻数据表数据总数
@{ Layout = null; var userNewCount=Html.SqlExecute("news","state=1 and uid=@uid",new {uid=1}); }
7、根据表名、字段名、自定义条件、自定义参数和排序获取第一条匹配数据,返回值为对象。
Html.GetData(string table,string fields,string sqlCondition,dynamic sqlParameters=null,string orderBy=null)
8、根据表名、字段名、显示数、自定义条件、自定义参数和排序获取数据,返回值为集合。
Html.GetDataList(string table,string fields,int showNumber,string sqlCondition = null, dynamic sqlParamters = null,string orderBy=null)
9、根据表名、字段名、分页对象、自定义条件、自定义参数和排序获取分页数据,返回值为集合。
Html.GetDataList(this HtmlHelper htmlHelper, string table, string fields,PageInfo pageInfo, string sqlCondition = null, dynamic sqlParamters = null, string orderBy = null)
以上方法的底层采用DataBaseContext对象,有兴趣的可以查看相关文档研究DataBaseContext源码和方法。