ASP.NET + EXTJS 实现类似GridView行内编辑、Pannel、分页、增删改查、数据验证,格式转换

Extjs版本:3.2.1
Newtonsoft.Json.dll (把数据序列化为Json格式)文件可在Newtonsoft官网去下载http://james.newtonking.com/
AjaxPro.2.dll  (直接与页面后台通过Ajax方式交互)官网地址:http://ajaxpro.codeplex.com
Oracle.DataAccess.dll  由Oracle安装文件中获取,提供对Oracle数据库的操作相关。示例使用Oracle10g,文件路径F:/oracle/product/10.2.0/db_1/BIN 可根据自己安装目录寻取

1、Oracle数据库表:

create table MacInfo (
   MacInfo_ID           varchar2(17)                  primary key,
   Com_ID               int                  null,
   ComUser_ID           int                  null,
   Mac_Address          varchar2(17)          not null,
   Mac_ApplyIP          int                  null,
   Mac_Status           int                  null,
   Mac_UserName         nvarchar2(50)         null,
   Mac_Remark           nvarchar2(200)        null
)

 

2、项目相关配置:

 I、添加对Oracle.DataAccess.dll、AjaxPro.2.dll、Newtonsoft.Json.dll的引用
 II、在Web.config中添加如下配置
 <configuration>
  <location path="ajaxpro">
   <system.web>
    <httpHandlers>
     <add verb="GET,POST" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
    </httpHandlers>
   </system.web>
  </location>
 </configuration>

3、页面关键代码:
说明:页面使用到了ProgressBarPager.js(滚动条式分页)和RowEditor.js(行内编辑)文件
RowEditor.js文件做了点修改。代码如下:

onRowClick: function(g, rowIndex, e){
        if(state=='add'){}else{
            if(this.clicksToEdit == 'auto'){
                var li = this.lastClickIndex;
                this.lastClickIndex = rowIndex;
                if(li != rowIndex && !this.isVisible()){
                    return;
                }
            }
            this.startEditing(rowIndex, false);
            this.doFocus.defer(this.focusDelay, this, [e.getPoint()]);
        }
    },

    onRowDblClick: function(g, rowIndex, e){
        if(state=='add'){}else{
            this.startEditing(rowIndex, false);
            this.doFocus.defer(this.focusDelay, this, [e.getPoint()]);
        }
    },

 

下面是数据展示主页面代码:ExtEditPage.aspx

<head runat="server">
    <title>无标题页</title>
    <link href="Extjs/resources/css/ext-all.css" mce_href="Extjs/resources/css/ext-all.css" rel="Stylesheet" type="text/css" />
    <mce:script src="Extjs/adapter/ext/ext-base.js" mce_src="Extjs/adapter/ext/ext-base.js" type="text/javascript"></mce:script>
    <mce:script src="Extjs/ext-all-debug.js" mce_src="Extjs/ext-all-debug.js" type="text/javascript"></mce:script>
    <mce:script src="Extjs/ux/ProgressBarPager.js" mce_src="Extjs/ux/ProgressBarPager.js" type="text/javascript"></mce:script>
    <link rel="stylesheet" type="text/css" href="Extjs/css/RowEditor.css" mce_href="Extjs/css/RowEditor.css" />
    <mce:script src="Extjs/ux/RowEditor.js" mce_src="Extjs/ux/RowEditor.js" type="text/javascript"></mce:script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <mce:script type="text/javascript"><!--
    var state = '';//标记是否正在添加数据
    Ext.onReady(function(){
    function ResumeError() {
        return true;
    }
    //window.onerror = ResumeError;
    function IPLong2Str(ipLong){
        return  ( (ipLong>>24) & 0xff ) + '.' +( (ipLong>>16) & 0xff ) + '.' +( (ipLong>>8) & 0xff ) + '.' +( ipLong & 0xff );
    }
    function IPStr2Long(ipStr){
        var aIPsec=ipStr.split(".");
        for(var i=0;i<4;i++){
            if(parseInt(aIPsec[i])<16){
                aIPsec[i]="0"+parseInt(aIPsec[i]).toString(16);
            }else{
                aIPsec[i]=parseInt(aIPsec[i]).toString(16);
            }
        }
        return parseInt("0x"+aIPsec[0]+aIPsec[1]+aIPsec[2]+aIPsec[3]);
    }
   
    Ext.QuickTips.init();
   
    function showStatus(value,p,r){
        if(value=="-1")
            return "<span style="color:red;" mce_style="color:red;">未审批</span>";
        else if(value=="0")
            return "<span style="color:blue;" mce_style="color:blue;">已拒绝</span>";
        else
            return "已通过";
    }
    function showUrl(value,p,r){
        return String.format('<a href="http://www.google.com.hk?id={0}" mce_href="http://www.google.com.hk?id={0}" target="_blank" >{1}</a>',r.data.ComUser_ID,value);//r.data["ComUser_ID"]也可以
    }
    function showIP(v,p,r){
        //return ExtEditPage.ParseIPAddressToStr(v).value;
        return IPLong2Str(v);
    }
    // create the Data Store
    var macInfo = Ext.data.Record.create([{
        name: 'MacInfo_ID',
        type: 'string'
        }, {
            name: 'Com_ID',
            type: 'int'
        }, {
            name: 'Mac_UserName',
            type: 'string'
        },{
            name: 'Mac_Address',
            type: 'string'
        },{
            name: 'Mac_Status',
            type: 'int'
        },{
            name: 'ComUser_ID',
            type: 'int'
        },{
            name: 'Mac_ApplyIP',
            type: 'int'
        },{
            name: 'Mac_Remark',
            type: 'string'
        }]);
    var store = new Ext.data.GroupingStore({
        proxy: new Ext.data.HttpProxy({
            url: 'TempPage.aspx'
        }),
        reader: new Ext.data.JsonReader({ totalProperty: "totalCount", root: "topics", fields: macInfo }),
        listeners: {  
                'update': function(thiz, record, operation){            //捕捉记录发生更改的事件  
//                    var mac = thiz.getAt(thiz.indexOf(record)).data;   //获得当前修改后的第一条记录  
//                    if(operation == Ext.data.Record.EDIT){              //判断update时间的操作类型是否为 edit 该事件还有其他操作类型比如 commit,reject  
//                        var result = ExtEditPage.Update(mac.MacInfo_ID,mac.Mac_Address,mac.Mac_Status).value;
//                        if(result==1){
//                                thiz.commitChanges();                   //如果请求成功则更新本地记录
//                        }else{  
//                                Ext.Msg.alert('错误','修改失败!');  
//                                thiz.rejectChanges();                   //请求失败,回滚本地记录
//                        }
//                    }  
                },  
                'remove': function(thiz,record,index){
                    if(record.data.MacInfo_ID=='SytemDefault'){}else{
                        var result = ExtEditPage.Del(record.data.MacInfo_ID).value;
                        if(result==1){
                                thiz.commitChanges();                   //如果请求成功则更新本地记录
                                Ext.Msg.alert("提示","删除成功!");
                        }else{  
                                Ext.Msg.alert('错误','删除失败!'); 
                                store.insert(0,record);
                        }
                    }
                }
              }
    });
    store.load({params:{start:0, limit:10}});
   
    var fm = Ext.form;
    //var ideditor=new fm.TextField({ allowBlank: false });
    var editor = new Ext.ux.grid.RowEditor({
        saveText: '保存',
        cancelText: '取消',
        errorText: '错误:',
        listeners: {
           beforeedit:function(rowedit,index){
                //var rec=store.getAt(index);
//                if(rec.data.MacInfo_ID){//检查MacInfo_ID是否有值在是否需要编辑状态未知情况下使用
//                     ideditor.disable();
//                }
            }  
        }
    });
   
    editor.on({
        scope: this,
        afteredit: function(roweditor,change,record,index){
            if(state=='add'){//新加新纪录
                var value = ExtEditPage.Add(record.get('Mac_Address'),record.get('Mac_Status'),'System remark').value;//添加新纪录
                if(value=="1"){
                    store.load({params:{start:0, limit:10}});
                    grid.store.reload();//添加成功,重新加载数据
                    state='';//还原状态
                    Ext.Msg.alert("提示","添加成功!");
                }else{//修改记录
                    editor.stopEditing();
                    grid.store.remove(store.getAt(0)) ;
                    grid.getView().refresh();
                    state='';//还原状态
                    Ext.Msg.alert("错误","添加失败!");
                }
            }else{
                var result = ExtEditPage.Update(record.data.MacInfo_ID,record.data.Mac_Address,record.data.Mac_Status).value; //修改
                if(result==1){
                    grid.store.commitChanges();
                    Ext.Msg.alert("提示","修改成功!");
                }else{
                    Ext.Msg.alert('错误','修改失败!');
                    grid.store.rejectChanges();//请求失败,回滚本地记录
                }
            }
        },
        canceledit: function(roweditor,change,record,index){
            if(state=='add'){
                grid.store.remove(store.getAt(0));
                grid.getView().refresh();
                state='';//更新state状态,防止其他行取消编辑误删操作
            }
            editor.stopEditing();
        }
    });
   
    var grid = new Ext.grid.GridPanel({
        width:820,
        height:320,
        title:'ExtJS -MacList',
        region: "center",
        store: store,
        margins: '0 5 5 5',
        loadMask: {msg:'正在加载数据...'},
        plugins: [editor],
        view: new Ext.grid.GroupingView({
            markDirty: false
        }),
        tbar: [{
            iconCls: 'icon-user-add',
            text: '添加',
            handler: function(){
                var e = new macInfo({
                    MacInfo_ID: 'SytemDefault',
                    Com_ID: 1,
                    Mac_UserName: 'SytemDefault',
                    Mac_Address: '',
                    Mac_Status: -1,
                    ComUser_ID: 1,
                    Mac_ApplyIP: 212121,
                    Mac_Remark: 'SytemDefault'                   
                });
                editor.stopEditing();
                store.insert(0, e);
                grid.getView().refresh();
                grid.getSelectionModel().selectRow(0);
                editor.startEditing(0);
                state='add';
            }
        },{
            ref: '../removeBtn',
            iconCls: 'icon-user-delete',
            text: '删除',
            disabled: true,
            handler: function(){
                editor.stopEditing();
                var s = grid.getSelectionModel().getSelections();
                for(var i = 0, r; r = s[i]; i++){
                    store.remove(r);
                }
                grid.store.reload();
            }
        }],
        // grid columns
        columns:[
        new Ext.grid.RowNumberer(),
        {
            header: "编号",
            dataIndex: 'MacInfo_ID',
            width: 150,
            sortable: true,
            editor: {
                xtype: 'textfield',
                disabled: true
            }
        },{
            header: "公司编号",
            dataIndex: 'Com_ID',
            width: 100,
            align: "center",
            sortable: true,
            setEditable: false,
            editor: {
                xtype: 'textfield',
                disabled: true
            }
        },{
            header: "用户名称",
            dataIndex: 'Mac_UserName',
            width: 150,
            sortable: true,
            renderer: showUrl,
            editor: {
                xtype: 'textfield',
                disabled: true
            }
        },{
            header: "Mac地址",
            dataIndex: 'Mac_Address',
            width: 150,
            align: 'center',
            sortable: true,
            editor: {
                xtype: 'textfield',
                allowBlank: false,
                regex: /^([0-9a-fA-F]{2})(([//s:-][0-9a-fA-F]{2}){5})$/,
                regexText: "Mac地址格式不对"
            }
        },{
            header: "申请IP",
            dataIndex: 'Mac_ApplyIP',
            width: 140,
            sortable: true,
            renderer: showIP,
            editor: {
                xtype: 'textfield',
                allowBlank: false,
                disabled: true
            }
        },{
            header: "状态",
            dataIndex: 'Mac_Status',
            width: 80,
            sortable: true,
            renderer: showStatus,
            editor: new fm.ComboBox({
                typeAhead: true,
                triggerAction: 'all',
                // transform the data already specified in html
                transform: 'selState',
                lazyRender: true
            })
        }],
        // paging bar on the bottom
        bbar: new Ext.PagingToolbar({
            pageSize: 10,
            store: store,
            displayInfo: true,
            displayMsg: '共{2}条,当前为 {0} - {1} 条',
            emptyMsg: "No Macs to display",
            plugins: new Ext.ux.ProgressBarPager(),
            items:[
                ' ',
                {
                    enableToggle: true,
                    text: '添加',
                    toggleHandler:function(btn,pressed){
                        var win = new Ext.Window({
                            title: '新加Mac地址',
                            width: 300,
                            height: 200,
                            layout: 'form',
                            modal: true,
                            resizable: false,
                            items: [
                                {
                                    xtype: 'form',
                                    frame:true,
                                    bodyStyle:'padding:5px 5px 0',
                                    defaultType: 'textfield',
                                    labelAlign: 'left',
                                    labelWidth: 65,
                                    defaults: {allowBlank: false,width: 180},
                                    items:
                                    [
                                        {
                                            fieldLabel: 'Mac地址',
                                            id: 'mac_new',
                                            regex: /^([0-9a-fA-F]{2})(([//s:-][0-9a-fA-F]{2}){5})$/,
                                            regexText: "Mac地址格式不对",
                                            listeners:{
                                                invalid: function(field,e){
                                                    Ext.getCmp("btnAdd").disable();
                                                },
                                                valid: function(field){
                                                    Ext.getCmp("btnAdd").enable();
                                                }
                                            }
                                        },
                                        new Ext.form.ComboBox({
                                            fieldLabel: '状  态',
                                            typeAhead: true,
                                            triggerAction: 'all',
                                            mode: 'local',
                                            id: 'cboStatu',
                                            store: new Ext.data.ArrayStore({
                                                id: 0,
                                                fields: ["sValue","sDisplay"],
                                                data: [[-1,'未审批'],[0,'已停用'],[1,'已启用']]
                                            }),
                                            valueField: 'sValue',
                                            displayField: 'sDisplay',
                                            value: '1'
                                        }),
                                        new Ext.form.TextArea({
                                            fieldLabel: '备  注',
                                            id: 'remark',
                                            height: 50,
                                            autoScroll: true,
                                            validateOnBlur: false
                                        })
                                    ],
                                    buttons: [{
                                        xtype: 'button',text: '添加',id:'btnAdd',disabled: true,
                                        handler: function(){
                                            var mac = Ext.getCmp("mac_new").getValue();
                                            var statu = Ext.getCmp("cboStatu").getValue();
                                            var rema=Ext.getCmp("remark").getValue();
                                            var re = /^([0-9a-fA-F]{2})(([//s:-][0-9a-fA-F]{2}){5})$/;
                                            if(re.test(mac)){
                                                var reValue = ExtEditPage.Add(mac,statu,rema).value;
                                                if(reValue=="1"){
                                                    store.load({params:{start:0, limit:10}});
                                                    grid.store.reload();
                                                    Ext.Msg.alert("提示","添加成功!");
                                                }else{Ext.Msg.alert("提示","添加失败!");}
                                                win.destroy();
                                            }else{
                                                Ext.Msg.alert("错误","Mac格式错误!");
                                                Ext.getCmp("mac_new").focus(true);
                                            }
                                        }
                                    },
                                    {
                                        xtype: 'button',text: '退出',
                                        handler: function(){win.destroy();}
                                    }],
                                    buttonAlign: 'center'
                                }
                            ]                           
                        });
                        win.show();
                    }
                }
            ]
        })
    });
    grid.render('topic-grid');
    grid.getSelectionModel().on('selectionchange', function(sm){
        grid.removeBtn.setDisabled(sm.getCount() < 1);
    });
});
   
// --></mce:script>
    <select id="selState" style="display:none" mce_style="display:none">
        <option value="-1">未审批</option>
        <option value="1">已通过</option>
        <option value="0">已停用</option>
    </select>
    </div>
    <div id="topic-grid" style="margin:10px 0px 0px 10px" mce_style="margin:10px 0px 0px 10px" ></div>
    </form>
</body>
</html>

 

页面后台:ExtEditPage.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using AjaxPro;
public partial class ExtEditPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e){
 //如果页面有命名空间则需要写成typeof(命名空间.ExtEditPage),前台使用同样使用 命名空间.ExtEditPage
        AjaxPro.Utility.RegisterTypeForAjax(typeof(ExtEditPage));//注册,必须的
    }
    [AjaxMethod]
    public string ParseIPAddressToStr(object gip){
        int ip = Convert.ToInt32(gip);
        return string.Format("{3}.{2}.{1}.{0}",
            ip & 0xff,
            ip >> 8 & 0xff,
            ip >> 16 & 0xff,
            ip >> 24 & 0xff);
    }
    [AjaxMethod]
    public string Update(object id,object mac,object status){
        MacInfo macInfo = new MacInfo();
        macInfo.MacInfo_ID = id.ToString();
        macInfo.Mac_Address = mac.ToString();
        macInfo.Mac_Status = Convert.ToInt32(status);
        return DMacInfo.Update(macInfo).ToString();
    }
    [AjaxMethod]
    public string Del(object id){
        return DMacInfo.Delete(id.ToString()).ToString();
    }
    [AjaxMethod]
    public string Add(object mac, object status,object remark){
        MacInfo macinfo = new MacInfo();
        macinfo.MacInfo_ID = Common.GetDateStr(DateTime.Now);
        macinfo.Mac_UserName = "System@adol.cn";
        macinfo.Mac_Status = Convert.ToInt32(status);
        macinfo.Mac_Remark = remark.ToString();
        macinfo.Mac_ApplyIP = Common.ParseIPAddress("192.168.0.130");
        macinfo.Mac_Address = mac.ToString().Replace(":","-").ToUpper();
        macinfo.ComUser_ID = 271;
        macinfo.Com_ID = 130;
        return DMacInfo.Add(macinfo).ToString();
    }
}

 

DMacInfo类:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
using System.Collections.Generic;
using System.Text;

public class DMacInfo
{
 public DMacInfo(){}

    /// <summary>
    /// 增加一条数据
    /// </summary>
    public static int Add(MacInfo model) {
        StringBuilder strSql = new StringBuilder();
        strSql.Append("insert into MacInfo(");
        strSql.Append("MacInfo_ID,Com_ID,ComUser_ID,Mac_Address,Mac_ApplyIP,Mac_Status,Mac_UserName,Mac_Remark)");
        strSql.Append(" values (");
        strSql.Append(":MacInfo_ID,:Com_ID,:ComUser_ID,:Mac_Address,:Mac_ApplyIP,:Mac_Status,:Mac_UserName,:Mac_Remark)");
        OracleParameter[] parameters = {
                    new OracleParameter(":MacInfo_ID", OracleDbType.Varchar2,17),
     new OracleParameter(":Com_ID", OracleDbType.Int32),
     new OracleParameter(":ComUser_ID", OracleDbType.Int32),
     new OracleParameter(":Mac_Address", OracleDbType.Varchar2,20),
     new OracleParameter(":Mac_ApplyIP", OracleDbType.Int32),
     new OracleParameter(":Mac_Status", OracleDbType.Int32),
     new OracleParameter(":Mac_UserName", OracleDbType.NVarchar2,50),     
     new OracleParameter(":Mac_Remark", OracleDbType.NVarchar2,200)};
        parameters[0].Value = model.MacInfo_ID;
        parameters[1].Value = model.Com_ID;
        parameters[2].Value = model.ComUser_ID;
        parameters[3].Value = model.Mac_Address;
        parameters[4].Value = model.Mac_ApplyIP;
        parameters[5].Value = model.Mac_Status;
        parameters[6].Value = model.Mac_UserName;
        parameters[7].Value = model.Mac_Remark;
        return DBHelper.ExecuteCommand(strSql.ToString(),CommandType.Text,parameters);
    }

    /// <summary>
    /// 更新一条数据
    /// </summary>
    public static int Update(MacInfo model){
        StringBuilder strSql = new StringBuilder();
        strSql.Append("update MacInfo set ");
        strSql.Append("Mac_Address=:Mac_Address,");
        strSql.Append("Mac_Status=:Mac_Status");
        strSql.Append(" where MacInfo_ID=:MacInfo_ID");
        OracleParameter[] parameters = {                   
                    new OracleParameter(":Mac_Address", OracleDbType.Varchar2,17),
                    new OracleParameter(":Mac_Status", OracleDbType.Int32,4),
                    new OracleParameter(":MacInfo_ID", OracleDbType.Varchar2,17)};
        parameters[0].Value = model.Mac_Address;
        parameters[1].Value = model.Mac_Status.ToString();
        parameters[2].Value = model.MacInfo_ID;
        return DBHelper.ExecuteCommand(strSql.ToString(), CommandType.Text, parameters);
    }

    /// <summary>
    /// 删除一条数据
    /// </summary>
    public static int Delete(string MacInfo_ID){
        StringBuilder strSql = new StringBuilder();
        strSql.Append("delete MacInfo ");
        strSql.Append(" where MacInfo_ID=:MacInfo_ID ");
        OracleParameter[] parameters = {
     new OracleParameter(":MacInfo_ID", OracleDbType.NVarchar2,17)};
        parameters[0].Value = MacInfo_ID;
        return DBHelper.ExecuteCommand(strSql.ToString(), CommandType.Text, parameters);
    }

    /// <summary>
    /// 得到一个对象实体
    /// </summary>
    public static MacInfo GetModel(string MacInfo_ID){
        StringBuilder strSql = new StringBuilder();
        MacInfo model = null;
        strSql.Append("select MacInfo_ID,Com_ID,ComUser_ID,Mac_Address,Mac_ApplyIP,Mac_Status,Mac_UserName,Mac_Remark from MacInfo ");
        strSql.Append(" where MacInfo_ID=:MacInfo_ID ");
        OracleParameter[] parameters = {
     new OracleParameter(":MacInfo_ID", OracleDbType.NVarchar2,17)};
        parameters[0].Value = MacInfo_ID;

        OracleDataReader dr = DBHelper.GetDataReader(strSql.ToString(), CommandType.Text, parameters);
        if(dr.Read()){
            model = BindReader(dr);
        }
        dr.Dispose();
        dr.Close();
        return model;
    }

    public static List<MacInfo> GetModelList(int dataStart, int pageSize, string strWhere, out int PageCount, out int RecordCount){
        StringBuilder strSql = new StringBuilder();
        strSql.Append("select * from (select a.*,Rownum rnum from (select * from macInfo order by MacInfo_ID desc) a where ROWNUM <=" + (dataStart + pageSize) + " ) where rnum > " + dataStart + "");
        PageCount = 0;
        RecordCount = 0;
        List<MacInfo> arr = new List<MacInfo>();
        OracleDataReader dr = DBHelper.GetDataReader(strSql.ToString(), CommandType.Text);
        if(dr != null){
            MacInfo element;
            while(dr.Read()){
                element = BindReader(dr);
                arr.Add(element);
            }
            dr.Dispose();
            dr.Close();
        }
        strSql.Remove(0, strSql.Length);
        //strSql.Append("select max(rnum) from (select rownum rnum from macinfo);");
        strSql.Append("select count(macinfo_id) from macinfo");
        object obj = DBHelper.GetScalar(strSql.ToString(), CommandType.Text);
        if(obj != null){
            RecordCount = Convert.ToInt32(obj);
            PageCount = RecordCount % pageSize == 0 ? (RecordCount / pageSize) : (RecordCount / pageSize + 1);
        }
        return arr;
    }

    /// <summary>
    /// 绑定对象实体
    /// </summary>
    public static MacInfo BindReader(OracleDataReader dr)
    {
        MacInfo model = null;
        if(dr != null){
            model = new MacInfo();
            if(dr["MacInfo_ID"].ToString() != ""){
                model.MacInfo_ID = dr["MacInfo_ID"].ToString();
            }
            if(dr["Com_ID"].ToString() != ""){
                model.Com_ID = int.Parse(dr["Com_ID"].ToString());
            }
            if(dr["ComUser_ID"].ToString() != ""){
                model.ComUser_ID = int.Parse(dr["ComUser_ID"].ToString());
            }
            model.Mac_Address = dr["Mac_Address"].ToString();
            if(dr["Mac_ApplyIP"].ToString() != ""){
                model.Mac_ApplyIP = int.Parse(dr["Mac_ApplyIP"].ToString());
            }
            if(dr["Mac_Status"].ToString() != ""){
                model.Mac_Status = int.Parse(dr["Mac_Status"].ToString());
            }
            model.Mac_UserName = dr["Mac_UserName"].ToString();
            model.Mac_Remark = dr["Mac_Remark"].ToString();
            return model;
        }else{
            return null;
        }
    }
}

 

DBHelper类:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Transactions;
using Oracle.DataAccess.Client;

/// <summary>
/// DBHelper 的摘要说明
/// </summary>
public class DBHelper
{
    public DBHelper(){    }
    //构造函数从配置文件中读取连接字符串
    public static String ConnectionString = "Data Source=orcl;User ID=hr;Password=hr;";

    /// <summary>
    /// 获取影响多少行
    /// </summary>
    /// <param name="queryString">T-SQL语句</param>
    /// <param name="commandType">命令类型</param>
    /// <param name="param">T-SQL参数</param>
    /// <returns>影响多少行</returns>
    public static int ExecuteCommand(string queryString, CommandType commandType, params OracleParameter[] param){
        int flag = 0;
        using(OracleConnection con = new OracleConnection(ConnectionString)){
            OracleCommand command = new OracleCommand(queryString, con);
            command.CommandType = commandType;
            if(param != null){
                for(int i = 0; i < param.Length; i++){
                    command.Parameters.Add(param[i]);
                }
            }
            try{
                command.Connection.Open();
                flag = command.ExecuteNonQuery();               
            }catch(Exception ex){
                throw ex;
            }finally{
                command.Connection.Close();
                command.Dispose();
                command = null;
            }
        }
        return flag;
    }

    /// <summary>
    /// 获取DataSet对象
    /// </summary>
    /// <param name="queryString">T-SQL语句</param>
    /// <param name="commandType">命令类型</param>
    /// <param name="param">T-SQL参数</param>
    /// <returns>DataSet对象</returns>
    public static DataSet GetDataSet(string queryString, CommandType commandType, params OracleParameter[] param){
        DataSet ds = new DataSet();
        using(OracleConnection con = new OracleConnection(ConnectionString)){
            OracleDataAdapter adapter = new OracleDataAdapter(queryString, con);
            adapter.SelectCommand.CommandType = commandType;
            if(param != null){
                for(int i = 0; i < param.Length; i++){
                    adapter.SelectCommand.Parameters.Add(param[i]);
                }
            }
            try{
                adapter.Fill(ds);
            }catch(Exception ex){
                throw ex;
            }finally{
                adapter.Dispose();
                adapter = null;
            }
        }
        return ds;
    }

    /// <summary>
    /// 获取DataReader对象
    /// </summary>
    /// <param name="queryString">T-SQL语句</param>
    /// <param name="commandType">命令类型</param>
    /// <param name="param">T-SQL参数</param>
    /// <returns>DataReader对象</returns>
    public static OracleDataReader GetDataReader(string queryString, CommandType commandType, params OracleParameter[] param){
        OracleDataReader dataReader = null;
        OracleConnection con = new OracleConnection(ConnectionString);
        OracleCommand command = new OracleCommand(queryString, con);
        command.CommandType = commandType;
        if(param != null){
            for(int i = 0; i < param.Length; i++){
                command.Parameters.Add(param[i]);
            }
        }
        try{
            command.Connection.Open();
            dataReader = command.ExecuteReader(CommandBehavior.CloseConnection);
        }catch(Exception ex){
            throw ex;
        }
        return dataReader;
    }

    /// <summary>
    /// 查询单个数据
    /// </summary>
    /// <param name="queryString">T-SQL语句</param>
    /// <param name="commandType">命令类型</param>
    /// <param name="param">T-SQL参数</param>
    /// <returns>Object对象</returns>
    public static Object GetScalar(string queryString, CommandType commandType, params OracleParameter[] param){
        Object obj = null;
        using(OracleConnection con = new OracleConnection(ConnectionString)){
            OracleCommand command = new OracleCommand(queryString, con);
            command.CommandType = commandType;
            if(param != null){
                for(int i = 0; i < param.Length; i++){
                    command.Parameters.Add(param[i]);
                }
            }
            try{
                command.Connection.Open();
                obj = command.ExecuteScalar();
            }catch(Exception ex){
                throw ex;
            }finally{
                command.Connection.Close();
                command.Dispose();
                command = null;
            }
        }
        return obj;
    }
}

 

Model类:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public class MacInfo
{
 public MacInfo(){ }

    #region Model
    private string _macinfo_id;
    private int _com_id;
    private int _comuser_id;
    private string _mac_address;
    private int _mac_applyip;
    private int _mac_status;
    private string _mac_username;
    private string _mac_remark;

    public string MacInfo_ID{
        set { _macinfo_id = value; }
        get { return _macinfo_id; }
    }
    public int Com_ID{
        set { _com_id = value; }
        get { return _com_id; }
    }
    public int ComUser_ID{
        set { _comuser_id = value; }
        get { return _comuser_id; }
    }
    public string Mac_Address{
        set { _mac_address = value; }
        get { return _mac_address; }
    }
    public int Mac_ApplyIP{
        set { _mac_applyip = value; }
        get { return _mac_applyip; }
    }
    public int Mac_Status{
        set { _mac_status = value; }
        get { return _mac_status; }
    }
    public string Mac_UserName{
        set { _mac_username = value; }
        get { return _mac_username; }
    }
    public string Mac_Remark{
        set { _mac_remark = value; }
        get { return _mac_remark; }
    }
    #endregion Model
}

 

运行效果:

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值