C#easyui实现增删改查

        上文,我们使用pb,c#WinForm,c#WebForm分别实现了增删改查,本文,我们C#easyui来实现一下。首先,说明一点,WebForm和easyui基本是一样,代码基本雷同,就是一个使用了服务器控件,一个使用easyui,排版有点不一样,服务器端的代码没有什么变化。数据库仍然采用sqlserver,表仍然采用table_test,字段不说了,参考前文。

首先,在vs中创建一个ASP.NET空网站,wsjquery

其次,和上文一样,创建数据库操作类db.cs

这次,该文件增加了操作存储过程的两个函数,因为easyui需要分页显示,本文通过存储过程实现sqlserver的分页。

using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;

/// <summary>
///db 的摘要说明
/// </summary>
public class db
{
    public static string connectionstring = "server=localhost;database=db;uid=sa;pwd=password";
    public db()
    {
		//
		//TODO: 在此处添加构造函数逻辑
		//
    }

    public static SqlConnection OpenDB()
    {
        try
        {
            SqlConnection oConn = new SqlConnection(connectionstring);
            oConn.Open();

            return oConn;
        }
        catch
        {
            throw;
        }
    }

    public static void CloseDB(SqlConnection oConn)
    {
        try
        {
            oConn.Close();
        }
        catch
        {
            throw;
        }
    }

    public static DataSet Execute(string strCommandString)
    {
        try
        {
            SqlConnection oConn = OpenDB();

            DataSet oDataSet = new DataSet();
            SqlDataAdapter oDataAdapter = new SqlDataAdapter(strCommandString, oConn);
            oDataAdapter.Fill(oDataSet);

            CloseDB(oConn);

            return oDataSet;
        }
        catch
        {
            throw;
        }
    }

    public static int ExecuteNonQuery(string strCommandString)
    {
        int li_count = 0;
        SqlConnection oConn = null;
        SqlCommand oComm = null;
        try
        {
            oConn = new SqlConnection(connectionstring);
            oComm = new SqlCommand();
            oConn.Open();
            oComm.Connection = oConn;
            oComm.CommandText = strCommandString;
            li_count = oComm.ExecuteNonQuery();
            return li_count;
        }
        catch
        {
            return 0;
        }
        finally
        {
            if (oConn != null) oConn.Close();
        }
    }

    public static int ExecuteReid(string strCommandString)
    {
        int li_count = 0;
        SqlConnection oConn = null;
        SqlCommand oComm = null;
        try
        {
            oConn = new SqlConnection(connectionstring);
            oComm = new SqlCommand();
            oConn.Open();
            oComm.Connection = oConn;
            oComm.CommandText = strCommandString;
            li_count = Convert.ToInt32(oComm.ExecuteScalar().ToString());
            return li_count;
        }
        catch
        {
            return 0;
        }
        finally
        {
            if (oConn != null) oConn.Close();
        }
    }

    /// <summary>
    /// 执行存储过程
    /// </summary>
    /// <param name="storedProcName">存储过程名</param>
    /// <param name="parameters">存储过程参数</param>
    /// <param name="tableName">DataSet结果中的表名</param>
    /// <returns>DataSet</returns>
    public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
    {
        using (SqlConnection connection = new SqlConnection(connectionstring))
        {
            DataSet dataSet = new DataSet();
            connection.Open();
            new SqlDataAdapter { SelectCommand = BuildQueryCommand(connection, storedProcName, parameters) }.Fill(dataSet, tableName);
            connection.Close();
            return dataSet;
        }
    }

    /// <summary>
    /// 构建 SqlCommand 对象,返回结果集
    /// </summary>
    /// <param name="connection">数据库连接</param>
    /// <param name="storedProcName">存储过程名</param>
    /// <param name="parameters">存储过程参数</param>
    /// <returns>SqlCommand</returns>
    private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
    {
        SqlCommand command = new SqlCommand(storedProcName, connection)
        {
            CommandType = CommandType.StoredProcedure
        };
        foreach (SqlParameter parameter in parameters)
        {
            if (parameter != null)
            {
                if (((parameter.Direction == ParameterDirection.InputOutput) || (parameter.Direction == ParameterDirection.Input)) && (parameter.Value == null))
                {
                    parameter.Value = DBNull.Value;
                }
                command.Parameters.Add(parameter);
            }
        }
        return command;
    }

}

第三步:引入easyui的文件,排版default.aspx


<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <link href="css/demo.css" type="text/css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="css/demo.css">
    <link rel="stylesheet" type="text/css" href="jquery/themes/default/easyui.css"> 
    <link rel="stylesheet" type="text/css" href="jquery/themes/icon.css">    
    <script type="text/javascript" src="jquery/jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="jquery/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="jquery/locale/easyui-lang-zh_CN.js"></script>
	<script type="text/javascript">

	    $(function () {
	        initgrid();
	    });

	    function initgrid() {

	        $('#t_dg').datagrid({

	            url: location.href,
	            idField: 'dg_dbid',
	            height: 420,
	            striped: true,
	            loadMsg: '数据正在加载,请耐心的等待...',
	            remoteSort: true,
	            singleSelect: true,
	            sortName: 'dg_dbid',
	            sortOrder: 'desc',
	            columns: [[
                      { field: 'cbx', checkbox: true },
                      { field: 'dg_xm1', title: '姓名', width: 200, align: 'center', sortable: true },
                      { field: 'dg_xm2', title: '性别', width: 100, align: 'center', sortable: true },
                      { field: 'dg_xm3', title: '电话', width: 200, align: 'center' },                     
                      { field: 'dg_dbid', title: '操作', width: 100, align: 'center',
                         formatter: function (value, rec) {
                             return '<a style="color:blue" href="javascript:;" οnclick="EditData(' + value + ');$(this).parent().click();return false;">修改</a>';
                            }
                        }
	                ]],
	            queryParams: { "action": "query" },
	            pagination: true,
	            pageNumber: 1, 
	            pageSize: 10,
	            rownumbers: true

	        });
	    }

	    function initcx() {

	        var cx = $("#txt_cx").val();
	        $('#t_dg').datagrid('options').queryParams.cx = cx;	     
	        $('#t_dg').datagrid('reload');

	    }

	    function OpenWin() {

	        $("#edit").dialog("open");
	        $("#edit-buttons a:first").attr("onclick", "Add(0); return false;");
	        $("#xm1").val("");
	        $("#xm3").val("");
	    }

	    //提交按钮事件
	    function Add(uid) {

	        if (!$("#form1").form("validate")) {
	            return;
	        }

	        var json = $('#form1').serialize();
          
	        $.post(location.href, json, function (data) {
	            $.messager.alert('提示', data, 'info', function () {
	                if (data.indexOf("成功") > 0) {
	                    $("#t_dg").datagrid("reload");
	                    $("#edit").dialog("close");
	                }

	            });
	        });
	    }

	    //修改链接 事件
	    function EditData(uid) {
	        $("#edit").dialog("open");
	        $("#btn_add").attr("onclick", "Add(" + uid + "); return false;")

	        $.post(location.href, { "action": "queryone", "dbid": uid }, function (data) {
	            var dataObj = eval("(" + data + ")"); //转换为json对象
	            $("#form1").form('load', dataObj);	            
	        });
	    }

	    //删除按钮事件
	    function DelData(id) {
	        $.messager.confirm('提示', '确认删除?', function (r) {
	            if (r) {
	                var selected = "";
	                if (id <= 0) {
	                    $($('#t_dg').datagrid('getSelections')).each(function () {
	                        selected += this.dg_dbid + ",";
	                    });
	                    selected = selected.substr(0, selected.length - 1);
	                    if (selected == "") {
	                        $.messager.alert('提示', '请选择要删除的数据!', 'info');
	                        return;
	                    }
	                }
	                else {
	                    selected = id;
	                }
	                $.post(location.href, { "action": "del", "cbx_select": selected }, function (data) {
	                    $.messager.alert('提示', data, 'info', function () { $("#t_dg").datagrid("reload"); });
	                });

	            }
	        });
	    }

	    window.onload = function () {
	        var searchcol = document.getElementsByName("searchcol");
	        var data = $('#searchcol').combobox('getData');
	        if (data.length > 0) {
	            $('#searchcol').combobox('select', data[0].mc);
	        }
	    }

    </script>
 
</head>
<body>
    <div id="lay" class="easyui-layout" fit=true>
  	 <div region="center" title="信息主页" iconCls="icon-main" style="padding:5px" >
         <table id="t_tool" cellspacing="2px" cellpadding="0" border="0" style="width: 100%">
             <tr>
                  <td style="height: 3px" colspan="2"></td>
             </tr>
             <tr>
                  <td valign="middle" nowrap align="left" class=spannone>
                      查询条件:<input  id="txt_cx" name="txt_cx" type="text" />                      
                      <a href="#" οnclick="initcx();return false;" id="a_cx" class="easyui-linkbutton" iconcls="icon-search">查询</a>                     
                  </td>
                  <td valign="middle" nowrap align="right">
                        <a href="#" οnclick="OpenWin();return false;" id="a_add" class="easyui-linkbutton" iconcls="icon-add">增加</a>
                        <a href="#" οnclick="DelData(0);return false;" id="a_del" class="easyui-linkbutton" iconcls="icon-cancel">删除</a>
                   </td>
              </tr>
              <tr>
                  <td style="height: 3px" colspan="2"></td>
             </tr>
         </table>
        
        <table id="t_dg"></table>        
        </div>

    </div>
    
    <div id="edit" class="easyui-dialog" title="信息维护" style="width: 400px; height: 200px;" modal="true" closed="true" buttons="#edit-buttons">
         <form id="form1" name="form1" method="post">
            <input id="action"  name="action" value="update" type="hidden"  />
	        <input id="dbid"  name="dbid" type="hidden"  />
            <table id="Table2" cellspacing="2" cellpadding="1" width="95%" border="0" align="center" class="px12"> 
                <tr>
                    <td style="height: 5px" colspan="2"></td>
                </tr>
 		<TR>
		    <td width="20%" height="20" class="tdlabel"><span class="spanerror">*</span>姓名:</td>
		    <TD width="80%"><input  id="xm1" name="xm1" type="text" class="easyui-validatebox"  required="true" maxlength="20" /></TD>
		</TR>                        
		<TR>
                    <td width="20%" height="20" class="tdlabel">性别:</td>
		    <TD width="80%">
		        <input type="radio" checked="checked"  name="xm2" value="男" />男 
                        <input type="radio" name="xm2" value="女" />女                           
		    </TD>                    
		</TR>
		<TR>
		    <td width="20%" height="20" class="tdlabel">电话:</td>
		    <TD width="80%">
		       <input id="xm3" name="xm3" type="text" class="easyui-validatebox"  maxlength="100" /></TD>	
		</TR>									
	   </TABLE>
          </form>
    </div>  
    <div id="edit-buttons">
        <a id="btn_add"   class="easyui-linkbutton">提交</a> 
        <a id="btn_close"  class="easyui-linkbutton" οnclick="$('#edit').dialog('close');return false;">取消</a>
    </div> 
</body>
</html>

第四步:配置好demo.css
.px12 {
	font-family: "宋体", Arial;
	font-size: 12px;
	text-decoration: none;
	color: #000000;
}
.tdlabel
{
	background-color:Silver;	
	text-align:right;	
}
第五步:编写default.aspx.cs文件
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Text;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string action = "";
        if (Request.Form["action"] != "")
            action = Request.Form["action"];

        switch (action)
        {
            case "query"://查询数据
                QueryData();
                break;
            case "queryone"://查询指定dbid 的数据,修改时用
                QueryOneData();
                break;
            case "update"://提交数据,添加或修改
                UpdateData();
                break;
            case "del"://删除数据
                DelData();
                break;
            default:
                break;

        }   
    }

    /// <summary>
    /// 查询数据
    /// </summary>
    private void QueryData()
    {
        int page = Request.Form["page"] != "" ? Convert.ToInt32(Request.Form["page"]) : 0;
        int size = Request.Form["rows"] != "" ? Convert.ToInt32(Request.Form["rows"]) : 0;
        string sort = Request.Form["sort"] != "" ? Request.Form["sort"] : "";
        string order = Request.Form["order"] != "" ? Request.Form["order"] : "";
        if (page < 1) return;
        string orderField = sort.Replace("dg_", "");
        Boolean lb_orderby = false;
        if (order.Equals("asc")) lb_orderby = true;

        string strWhere = GetWhere();

        DataSet ds = GetList("table_test", "*", orderField, size, page, false, lb_orderby, strWhere);
        DataSet ds2 = GetList("table_test", "*", orderField, size, page, true, lb_orderby, strWhere);

        int count = Convert.ToInt16(ds2.Tables[0].Rows[0][0]);//获取总数

        string strJSON = CreateJsonParameters(ds.Tables[0], true, count);      

        Response.Write(strJSON);
        Response.End();

    }

    #region 查询数据
    /// <summary>
    /// 组合搜索条件
    /// </summary>
    /// <returns></returns>
    private string GetWhere()
    {
        string ls_where = "1=1";    
        string cx = Request.Form["cx"] != "" ? Request.Form["cx"] : string.Empty;
        if ( cx != "")
        {
            ls_where = "  (xm1 like '%" + cx + "%') or (xm2 like '%" + cx + "%') or (xm3 like '%" + cx + "%')";     
        }
        return ls_where;
    }
    #endregion

    public static DataSet GetList(string tableName, string getFields, string orderName, int pageSize, int pageIndex, bool isGetCount, bool orderType, string strWhere)
    {
        SqlParameter[] parameters = {
                    new SqlParameter("@tblName", SqlDbType.VarChar, 255),
                    new SqlParameter("@strGetFields", SqlDbType.VarChar, 1000),
                    new SqlParameter("@fldName", SqlDbType.VarChar, 255),
                    new SqlParameter("@PageSize", SqlDbType.Int),
                    new SqlParameter("@PageIndex", SqlDbType.Int),
                    new SqlParameter("@doCount", SqlDbType.Bit),
                    new SqlParameter("@OrderType", SqlDbType.Bit),
                    new SqlParameter("@strWhere", SqlDbType.VarChar, 1500)            
                                     };
        parameters[0].Value = tableName;
        parameters[1].Value = getFields;
        parameters[2].Value = orderName;
        parameters[3].Value = pageSize;
        parameters[4].Value = pageIndex;
        parameters[5].Value = isGetCount ? 1 : 0;
        parameters[6].Value = orderType ? 1 : 0;
        parameters[7].Value = strWhere;
        return db.RunProcedure("pro_pageList", parameters, "ds");

    }

    private void UpdateData()
    {
        int dbid = Request.Form["dbid"] != "" ? Convert.ToInt32(Request.Form["dbid"]) : 0;
        HttpContext context = HttpContext.Current;

        string writeMsg = "操作失败!";
        int li_ret;

        if (dbid < 1)
        {
            string ls_sql = "INSERT INTO table_test ( xm1,xm2,xm3 )  VALUES (  @@xm1, @@xm2, @@xm3 ); SELECT dbid FROM table_test WHERE (dbid = @@IDENTITY)";
            ls_sql = ls_sql.Replace("@@xm1", "'" + Request.Form["xm1"] + "'");
            ls_sql = ls_sql.Replace("@@xm2", "'" + Request.Form["xm2"] + "'");
            ls_sql = ls_sql.Replace("@@xm3", "'" + Request.Form["xm3"] + "'");

            li_ret = db.ExecuteReid(ls_sql);
            if (li_ret > 0)
            {
                writeMsg = "新增成功!";
            }
            else
            {
                writeMsg = "新增失败!";
            }
          
        }
        else
        {
            string ls_sql = "update table_test set xm1=@@xm1,xm2=@@xm2,xm3=@@xm3  where dbid = @@dbid";
            ls_sql = ls_sql.Replace("@@dbid", "'" + Request.Form["dbid"] + "'");
            ls_sql = ls_sql.Replace("@@xm1", "'" + Request.Form["xm1"] + "'");
            ls_sql = ls_sql.Replace("@@xm2", "'" + Request.Form["xm2"] + "'");
            ls_sql = ls_sql.Replace("@@xm3", "'" + Request.Form["xm3"] +"'");
            li_ret = db.ExecuteNonQuery(ls_sql);
            if (li_ret > 0)
            {
                writeMsg = "修改成功!";
            }
            else
            {
                writeMsg = "修改失败!";
            }
        }

        Response.Clear();
        Response.Write(writeMsg);
        Response.End();

    }
 
    #region 删除指定dbid 的数据
    /// <summary>
    /// 删除数据
    /// </summary>
    private void DelData()
    {
        string writeMsg = "删除失败!";

        string selectID = Request.Form["cbx_select"] != "" ? Request.Form["cbx_select"] : "";
        if (selectID != string.Empty && selectID != "0")
        {
            string ls_sql = "delete table_test where dbid = " + selectID;
            if (db.ExecuteNonQuery(ls_sql) > 0)
            {
                writeMsg = "删除成功!";
            }
            else
            {
                writeMsg = "删除失败!";
            }
        }

        Response.Clear();
        Response.Write(writeMsg);
        Response.End();
    }
    #endregion

    #region 查询指定ID 的数据
    /// <summary>
    /// 获取指定ID的数据
    /// </summary>
    private void QueryOneData()
    {
        int ll_dbid = Request.Form["dbid"] != "" ? Convert.ToInt32(Request.Form["dbid"]) : 0;
        DataSet ds = db.Execute("select xm1,xm2,xm3,dbid from table_test where dbid =" + ll_dbid);

        string strJSON = CreateJsonOne(ds.Tables[0], false);
        Response.Clear();
        Response.Write(strJSON);
        Response.End();
    }
    #endregion

    public static string CreateJsonOne(DataTable dt, bool displayCount)
    {
        StringBuilder JsonString = new StringBuilder();
        //Exception Handling        
        if (dt != null && dt.Rows.Count > 0)
        {

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                JsonString.Append("{ ");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    if (j < dt.Columns.Count - 1)
                    {
                        JsonString.Append(dt.Columns[j].ColumnName.ToString().ToLower() + ":" + "\"" + dt.Rows[i][j].ToString() + "\",");
                    }
                    else if (j == dt.Columns.Count - 1)
                    {
                        JsonString.Append(dt.Columns[j].ColumnName.ToString().ToLower() + ":" + "\"" + dt.Rows[i][j].ToString() + "\"");
                    }
                }

                if (i == dt.Rows.Count - 1)
                {
                    JsonString.Append("} ");
                }
                else
                {
                    JsonString.Append("}, ");
                }
            }

            return JsonString.ToString();
        }
        else
        {
            return null;
        }

    }

    /// <summary>
    /// 将DataTable中的数据转换成JSON格式
    /// </summary>
    /// <param name="dt">数据源DataTable</param>
    /// <param name="displayCount">是否输出数据总条数</param>
    /// <param name="totalcount">JSON中显示的数据总条数</param>
    /// <returns></returns>
    public static string CreateJsonParameters(DataTable dt, bool displayCount, int totalcount)
    {
        StringBuilder JsonString = new StringBuilder();
        //Exception Handling        

        if (dt != null)
        {
            JsonString.Append("{ ");
            JsonString.Append("\"rows\":[ ");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                JsonString.Append("{ ");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    if (j < dt.Columns.Count - 1)
                    {
                        //if (dt.Rows[i][j] == DBNull.Value) continue;
                        if (dt.Columns[j].DataType == typeof(bool))
                        {
                            JsonString.Append("\"dg_" + dt.Columns[j].ColumnName.ToLower() + "\":" +
                                              dt.Rows[i][j].ToString().ToLower() + ",");
                        }
                        else if (dt.Columns[j].DataType == typeof(string))
                        {
                            JsonString.Append("\"dg_" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" +
                                              dt.Rows[i][j].ToString().Replace("\"", "\\\"") + "\",");
                        }
                        else
                        {
                            JsonString.Append("\"dg_" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" + dt.Rows[i][j] + "\",");
                        }
                    }
                    else if (j == dt.Columns.Count - 1)
                    {
                        //if (dt.Rows[i][j] == DBNull.Value) continue;
                        if (dt.Columns[j].DataType == typeof(bool))
                        {
                            JsonString.Append("\"dg_" + dt.Columns[j].ColumnName.ToLower() + "\":" +
                                              dt.Rows[i][j].ToString().ToLower());
                        }
                        else if (dt.Columns[j].DataType == typeof(string))
                        {
                            JsonString.Append("\"dg_" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" +
                                              dt.Rows[i][j].ToString().Replace("\"", "\\\"") + "\"");
                        }
                        else
                        {
                            JsonString.Append("\"dg_" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" + dt.Rows[i][j] + "\"");
                        }
                    }
                }
                /*end Of String*/
                if (i == dt.Rows.Count - 1)
                {
                    JsonString.Append("} ");
                }
                else
                {
                    JsonString.Append("}, ");
                }
            }
            JsonString.Append("]");

            if (displayCount)
            {
                JsonString.Append(",");

                JsonString.Append("\"total\":");
                JsonString.Append(totalcount);
            }

            JsonString.Append("}");
            return JsonString.ToString().Replace("\n", "");
        }
        else
        {
            return null;
        }
    }

}
第六步:数据库增加存储过程,用于分页
CREATE PROCEDURE [dbo].[pro_pageList]
(

@tblName   varchar(255),       -- 表名
@strGetFields varchar(1000) = '*',  -- 需要返回的列
@fldName varchar(255)='',      -- 排序的字段名
@PageSize   int = 40,          -- 页尺寸
@PageIndex  int = 1,           -- 页码
@doCount  bit = 0,   -- 返回记录总数, 非 0 值则返回
@OrderType bit = 0,  -- 设置排序类型, 非 0 值则降序
@strWhere  varchar(1500)=''  -- 查询条件 (注意: 不要加 where)

)

AS

declare @strSQL   varchar(5000)       -- 主语句
declare @strTmp   varchar(110)        -- 临时变量
declare @strOrder varchar(400)        -- 排序类型

if @doCount != 0
    begin
       if @strWhere !=''
           set @strSQL = 'select count(*) as Total from ' + @tblName + ' where '+@strWhere
       else
           set @strSQL = 'select count(*) as Total from ' + @tblName 
    end  

--以上代码的意思是如果@doCount传递过来的不是0,就执行总数统计。以下的所有代码都是@doCount为0的情况

else

    begin

        if @OrderType != 0
             begin
                 set @strTmp = '<(select min'
                 set @strOrder = ' order by ' + @fldName +' desc'     
             end
         else   --如果@OrderType不是0,就执行降序,这句很重要!
             begin
                set @strTmp = '>(select max'
                set @strOrder = ' order by ' + @fldName +' asc'
             end

          if @PageIndex = 1  --如果是第一页就执行下面的代码,这样会加快执行速度
               begin
                   if @strWhere != ''
                          set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ '  from ' + @tblName + ' where ' + @strWhere + ' ' + @strOrder
                  else
                        set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ '  from '+ @tblName + ' '+ @strOrder            
               end
           else     --以下代码赋予了@strSQL以真正执行的SQL代码
                begin           

                      set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ '  from '
                      + @tblName + ' where ' + @fldName + '' + @strTmp + '('+ @fldName + ') from (select top ' + str((@PageIndex-1)*@PageSize) + ' '+ 
                        @fldName + ' from ' + @tblName + '' + @strOrder + ') as tblTmp)'+ @strOrder

                     if @strWhere != ''

                             set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ '  from '
                              + @tblName + ' where ' + @fldName + '' + @strTmp + '('
                              + @fldName + ') from (select top ' + str((@PageIndex-1)*@PageSize) + ' '
                              + @fldName + ' from ' + @tblName + ' where ' + @strWhere + ' '
                              + @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
                end
    end   

exec (@strSQL)
总结
         通过上面的代码,我们可以看出C#easyui实现增删改查,前端采用jquery来获取数据,传递给服务器,服务器端得到数据将处理结果通过josn或者text的方式传到前端 ,jquery接收到处理结果后再展示给客户。也是十分的简单,就是对http协议要有深入的理解,不过,和上文的三种编程模式还是不同的,需要深刻的理解,融汇贯通。
         通过esayui来处理增删改查,代码终于突破1000行了,有点怀念pb几十行的幸福时光了吧,后面更加复杂,没有几千行都处理不了一个增删改查,不知道为什么简单的问题越来越复杂。



  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我可以回答这个问题。以下是一个简单的 easyui 增删改查实现的示例代码: HTML 代码: ``` <div class="easyui-layout" style="width:100%;height:100%;"> <div region="west" split="true" title="菜单" style="width:200px;"> <ul id="menu"></ul> </div> <div region="center" title="内容"> <table id="dg"></table> <div id="toolbar"> <a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">新增</a> <a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser()">编辑</a> <a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyUser()">删除</a> </div> </div> </div> ``` JS 代码: ``` $(function(){ $('#menu').tree({ url:'menu.json', onClick:function(node){ $('#dg').datagrid({ url:'get_users.php?menu='+node.id, fit:true, fitColumns:true, singleSelect:true, rownumbers:true, pagination:true, toolbar:'#toolbar', columns:[[ {field:'id',title:'编号',width:50}, {field:'name',title:'姓名',width:100}, {field:'sex',title:'性别',width:50}, {field:'age',title:'年龄',width:50}, {field:'phone',title:'电话',width:100}, {field:'email',title:'邮箱',width:150}, {field:'address',title:'地址',width:200}, {field:'remark',title:'备注',width:200} ]] }); } }); }); function newUser(){ $('#dlg').dialog('open').dialog('setTitle','新增'); $('#fm').form('clear'); url = 'save_user.php'; } function editUser(){ var row = $('#dg').datagrid('getSelected'); if (row){ $('#dlg').dialog('open').dialog('setTitle','编辑'); $('#fm').form('load',row); url = 'update_user.php?id='+row.id; } } function saveUser(){ $('#fm').form('submit',{ url: url, onSubmit: function(){ return $(this).form('validate'); }, success: function(result){ var result = eval('('+result+')'); if (result.errorMsg){ $.messager.show({ title: 'Error', msg: result.errorMsg }); } else { $('#dlg').dialog('close'); $('#dg').datagrid('reload'); } } }); } function destroyUser(){ var row = $('#dg').datagrid('getSelected'); if (row){ $.messager.confirm('Confirm','Are you sure you want to delete this user?',function(r){ if (r){ $.post('destroy_user.php',{id:row.id},function(result){ if (result.success){ $('#dg').datagrid('reload'); } else { $.messager.show({ title: 'Error', msg: result.errorMsg }); } },'json'); } }); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值