asp.net 查询sql数据表的网页模板
2017-01-17 10:06
375 查看
最近因为工作需求,要制作一个网页模板,主要是用于快速开发,可以查询Sql数据表信息的模板,
昨天做好了,这个只是一个Demo,但是功能已经齐全了,
开发新的网站时,需要新增一个xml,复制粘贴网页的前端和后台,注意,前端的样式和逻辑还是要分开写的。
这样,基本上在10分钟以内,就能开发一个新的网页(只有核心的查询功能)。
这是效果图:
下面记录一下这个Demo:
首先是要在Web项目的web.config中配置数据库的连接字符串和xml文件名:
接着,我有做好了一个帮助类QueryHelper:
然后,是SqlHelper,这个就不放出来了,以前也发过。
接着创建一个xml,我是放在项目主目录下的“xml”文件夹内,内容如下:
最后,创建一个WebForm.aspx,
下面分别是后台和前端的代码:
前端的代码,自己再套上样式和编写js代码就可以使用了。
最后,也放出另一个效果图,我做好这个新的页面,只复制粘贴了几分钟。
就这些,欢迎交流。
源码下载:http://download.csdn.net/detail/cycong108/9739562
昨天做好了,这个只是一个Demo,但是功能已经齐全了,
开发新的网站时,需要新增一个xml,复制粘贴网页的前端和后台,注意,前端的样式和逻辑还是要分开写的。
这样,基本上在10分钟以内,就能开发一个新的网页(只有核心的查询功能)。
这是效果图:
下面记录一下这个Demo:
首先是要在Web项目的web.config中配置数据库的连接字符串和xml文件名:
1 <appSettings> 2 <add key="xmlDir" value="xml"/> 3 </appSettings> 4 <connectionStrings> 5 <add name="connStr" connectionString="Data Source=10.76.25.XX;DATABASE=XXX;Persist Security Info=True;User ID=sa;Password=XXXXXX;Max Pool Size=300;" providerName="System.Data.SqlClient"/> 6 </connectionStrings>
接着,我有做好了一个帮助类QueryHelper:
1 using System; 2 using System.Collections.Generic; 3 using System.Configuration; 4 using System.Data; 5 using System.Data.SqlClient; 6 using System.IO; 7 using System.Web.UI; 8 using System.Web.UI.HtmlControls; 9 using System.Web.UI.WebControls; 10 using System.Xml.Linq; 11 12 namespace Cong.Utility 13 { 14 public delegate void DelegatePageIndexChange(object obj, GridViewPageEventArgs e); 15 16 public class QueryHelper 17 { 18 private string xmlName { get; set; } 19 private Page page { get; set; } 20 private GridView gv { get; set; } 21 22 private DelegatePageIndexChange dele; 23 24 public QueryHelper(string xmlName, Page page, DelegatePageIndexChange dele) 25 { 26 this.xmlName = xmlName; 27 this.page = page; 28 this.gv = page.FindControl("gv") as GridView; 29 this.dele = dele; 30 31 gv.PageIndexChanging += Gv_PageIndexChanging; 32 } 33 34 public void BindData(object objIndex) 35 { 36 var xmlDir = ConfigurationManager.AppSettings["xmlDir"]; 37 //获取xml节点 38 string path = AppDomain.CurrentDomain.BaseDirectory + (xmlDir == null ? "" : (xmlDir.ToString() + "\\")) + xmlName; 39 if (!File.Exists(path)) 40 throw new Exception("xml is not exist."); 41 42 XDocument xdoc = XDocument.Load(path); 43 XElement root = xdoc.Root; 44 45 //获取基本查询语句的变量 46 string tableName = root.Element("tableName").Value; 47 string topNumber = root.Element("top").Value; 48 49 //拼接where条件语句 50 List<string> conditions = new List<string>(); 51 List<SqlParameter> ps = new List<SqlParameter>(); 52 foreach (var ele in root.Element("field").Elements()) 53 { 54 if (ele.Element("search").Value.Equals("0")) 55 { 56 HtmlInputText tb = page.FindControl("search_" + ele.Name.ToString()) as HtmlInputText; 57 if (tb == null) 58 continue; 59 60 if (!tb.Value.Trim().Equals("")) 61 { 62 conditions.Add(string.Format("{0} like '%'+@{0}+'%'", ele.Name.ToString())); 63 ps.Add(new SqlParameter("@" + ele.Name.ToString(), tb.Value.Trim())); 64 } 65 } 66 } 67 //是否有删除标识 68 foreach (var ele in root.Element("flag").Elements()) 69 { 70 if (ele.Value.Equals("0")) 71 conditions.Add(ele.Name + " " + ele.Value); 72 } 73 string strWhere = ""; 74 if (conditions.Count > 0) 75 strWhere = "where " + string.Join(" and ", conditions.ToArray()); 76 77 //拼接sort条件语句 78 List<string> sorts = new List<string>(); 79 foreach (var ele in root.Element("sorts").Elements()) 80 { 81 sorts.Add(ele.Element("field").Value + " " + ele.Element("type").Value); 82 } 83 string strOrderBy = ""; 84 if (sorts.Count > 0) 85 strOrderBy = "order by " + string.Join(",", sorts.ToArray()); 86 87 //拼接sql语句 88 string sql = string.Format("select top {0} * from {1} {2} {3}", topNumber, tableName, strWhere, strOrderBy); 89 DataTable dt = SqlHelper.ExecuteDataTable(sql, ps); 90 91 BindGV(dt, root, objIndex); 92 } 93 94 public void BindGV(DataTable dt, XElement root, object objIndex) 95 { 96 gv.DataSource = null; 97 gv.Columns.Clear(); 98 gv.AutoGenerateColumns = false; 99 gv.AllowPaging = true; 100 gv.PageSize = int.Parse(root.Element("pageSize").Value); 101 102 BoundField gvColumn = null; 103 foreach (var ele in root.Element("field").Elements()) 104 { 105 if (ele.Element("visible").Value.Equals("0")) 106 { 107 gvColumn = new BoundField(); 108 gvColumn.HeaderText = ele.Element("cn").Value; 109 gvColumn.DataField = ele.Name.ToString(); 110 gv.Columns.Add(gvColumn); 111 gvColumn = null; 112 } 113 } 114 115 gv.DataSource = dt; 116 gv.PageIndex = objIndex == null ? 0 : Convert.ToInt32(objIndex); 117 gv.DataBind(); 118 } 119 120 private void Gv_PageIndexChanging(object sender, GridViewPageEventArgs e) 121 { 122 dele(sender, e); 123 BindData(e.NewPageIndex); 124 } 125 } 126 }
然后,是SqlHelper,这个就不放出来了,以前也发过。
接着创建一个xml,我是放在项目主目录下的“xml”文件夹内,内容如下:
1 <?xml version="1.0" encoding="utf-8" ?> 2 <root> 3 <tableName>V_121_LOT_LIST</tableName> 4 <top>100</top> 5 <field> 6 <lot_id> 7 <cn>Id</cn> 8 <visible>0</visible> 9 <search>0</search> 10 </lot_id> 11 <lot_code> 12 <cn>批号</cn> 13 <visible>0</visible> 14 <search>0</search> 15 </lot_code> 16 <plan_qty> 17 <cn>生产数量</cn> 18 <visible>1</visible> 19 <search>1</search> 20 </plan_qty> 21 <now_qty> 22 <cn>当前数量</cn> 23 <visible>0</visible> 24 <search>1</search> 25 </now_qty> 26 </field> 27 <flag> 28 <state_flg>1</state_flg> 29 <del_flg>1</del_flg> 30 </flag> 31 <sorts> 32 <sort> 33 <field>lot_id</field> 34 <type>desc</type> 35 </sort> 36 </sorts> 37 <pageSize>20</pageSize> 38 </root>
最后,创建一个WebForm.aspx,
下面分别是后台和前端的代码:
1 using Cong.Utility; 2 using System; 3 using System.Web.UI.WebControls; 4 5 namespace QueryTemplet 6 { 7 public partial class lot : System.Web.UI.Page 8 { 9 private static string xmlName = "lot.xml"; 10 11 protected QueryHelper qh = null; 12 13 protected void Page_Load(object sender, EventArgs e) 14 { 15 qh = new QueryHelper(xmlName, this, Gv_PageIndexChanging); 16 qh.BindData(ViewState["pageIndex"]); 17 } 18 19 private void Gv_PageIndexChanging(object sender, GridViewPageEventArgs e) 20 { 21 ViewState["pageIndex"] = e.NewPageIndex; 22 } 23 24 protected void btnSearch_Click(object sender, EventArgs e) 25 { 26 qh.BindData(ViewState["pageIndex"]); 27 } 28 } 29 }
1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="lot.aspx.cs" Inherits="QueryTemplet.lot" %> 2 3 <!DOCTYPE html> 4 5 <html xmlns="http://www.w3.org/1999/xhtml"> 6 <head runat="server"> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 8 <title></title> 9 </head> 10 <body> 11 <form id="form1" runat="server"> 12 <div> 13 Id:<input type="text" id="search_lot_id" runat="server" /> 14 批号:<input type="text" id="search_lot_code" runat="server" /> 15 <br /> 16 <asp:Button Text="查找" ID="btnSearch" runat="server" OnClick="btnSearch_Click" /> 17 </div> 18 <div> 19 <asp:GridView ID="gv" runat="server"> 20 </asp:GridView> 21 </div> 22 </form> 23 </body> 24 </html>
前端的代码,自己再套上样式和编写js代码就可以使用了。
最后,也放出另一个效果图,我做好这个新的页面,只复制粘贴了几分钟。
就这些,欢迎交流。
源码下载:http://download.csdn.net/detail/cycong108/9739562
相关文章推荐
- 使用realvnc远程访问Raspbian桌面
- II6 IIS7 下 asp.net的生命周期
- ASP.NET Zero--11.一个例子(4)商品分类管理-数据检验
- ASP.NET中调用百度地图API
- ASP.NET Zero--10.一个例子(3)商品分类管理-新建
- jasperReport+struts2+jatoolsPrinter打印
- ASP.NET MVC编程入门--WEB API 用户验证
- jasperReport+struts2打印
- ASP.NET控件之DropDownList
- 实战ASP.NET访问共享文件夹(含详细操作步骤)
- ASP.NET Cookie 概述
- Aspose.Words使用教程大全
- [Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.
- 使用@Aspect不起作用
- Ajax Not Found,asp.net mvc 中
- ASP.NET中的C#基础知识
- 【翻译】使用Visual Studio创建Asp.Net Core MVC (一)
- 【翻译】使用Visual Studio在Azure上部署Asp.Net Core Web应用
- 【翻译】在Visual Studio中使用Asp.Net Core MVC创建第一个Web Api应用(二)
- 【翻译】在Visual Studio中使用Asp.Net Core MVC创建你的第一个Web API应用(一)