侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 http://static.blog.csdn.net/images/logo.gif /h273979586 zh-cn 5 2018-01-18T01:38:58.0555376+08:00 侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78794048 /h273979586/article/details/78794048 h273979586 2018-01-14T11:33:24 安装完成mysql以后系统默认是不可以远程访问的,而我们百度的方法或命令都是不可以运行,因为我们没人配置环境变量。


一、配置环境变量

我的电脑右击属性



打开系统高级设置——》选择环境变量




在打开窗口中选择path——》点击编辑




先点击新建——》再点击浏览,把找到mysal安装路径下的bin目录即可,确定就行。




二、启动远程命令

使用管理员权限打开DOS窗口,定位到Mysql安装bin目录下,也可以直接点击bin目录下mysql.exe

小编用dos定位到bin目录



输入  mysql -hlocalhost -uroot -p 提示我们输入密码,输入完成后进入mysql




接着输入  grant all privileges on *.* to 创建的用户名 @"%" identified by "密码";   只需要把“创建的用户名”和“密码”换成自己的即可,其它不变。

用其它电脑测试连接即可

作者:h273979586发表于2018/1/14 11:33:24 原文链接
阅读:73评论:1查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78959556 /h273979586/article/details/78959556 h273979586 2018-01-03T12:01:14 一、准备程序

首先在VS 2010或其它版本新建WCF应用程序并且实现其中代码,保证代码运行正确。

选择该项目右键生成(必须生成)

二、开始发布

在需要发布的电脑或服务器上找到并打开IIS,选中网站-右键-添加网站。如下图:




接下来按图片步骤输入内容。网站名称自己起就行,物理路径选择项目的文件夹即可,绑定IP输入自己IP,端口号输入内容不能本地已发布程序端口冲突即可。如下图:




配置好信息后单击-连接为,弹出下图提示框




选择特定用户-单击设置,如下图:




设置用户名和密码,为开机时候用户名和密码。设置完成单击确定。回到主页面。如下图:




开始进行身份验证,单击上图中的图标。如下图:




把上图中状态改为启用。回到主页面。


选择应用程序池-右则找到自己项目-右击属性-高级设置。如下图:




设置完成后回到主页面,找面网站下的项目,选择其中文件夹,添加应用程序。如下图:




配置别名和路径,最后单击连接为。如下图:




选择目录浏览,应用打开状态即可,下图就是打开状态。如下图:




开始运行项目单击图片中红色区域。如下图:




会弹出一个网页,继续单击。如下图:




再次单击,如下图:



 

发布成功把连接应用到程序中即可。


作者:h273979586发表于2018/1/3 12:01:14 原文链接
阅读:208评论:3查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78766614 /h273979586/article/details/78766614 h273979586 2017-12-10T19:37:37 Microsoft Visual Studio 2013 建立ADO.NET数据实体,建立数据库连接时,报错提示《未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”或它的某一个依赖项。系统找不到指定的文件。》




原因:缺少插件,在此处下载插件安装即可。

http://download.csdn.net/download/h273979586/10153109

作者:h273979586发表于2017/12/10 19:37:37 原文链接
阅读:249评论:6查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78761078 /h273979586/article/details/78761078 h273979586 2017-12-09T19:49:56 根据问题描述就可以找到问题原因,配置文件中找不到名为“****”的连接字符串,所以你在配置文件中找不到name为“*****”的连接字符串。


创建EF时它会让我们选择连接的数据库(MySql、Sql Server)输入账号密码、选择数据库等一系列步骤完成之后才创建EF,其实创建完成后连接字符串系统已经自动生成好了,我们只需要把字符串放到配置文件中即可。


打开我们创建EF的类下面的App.Config,找到名为“*****”的连接字符串




把选中的代码复制到配置文件中




作者:h273979586发表于2017/12/9 19:49:56 原文链接
阅读:253评论:8查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78759402 /h273979586/article/details/78759402 h273979586 2017-12-09T15:29:44 错误:

类型“System.Data.Entity.DbContext”在未被引用的程序集中定义。必须添加对程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用

方法:没有安装关于EF的NuGet程序包

在VS中打开->工具->库程序包管理器->管理解决方案的NuGet程序包,在里面选择EntityFramework点击安装即可,勾选需要加载的类库






作者:h273979586发表于2017/12/9 15:29:44 原文链接
阅读:354评论:7查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78734456 /h273979586/article/details/78734456 h273979586 2017-12-06T20:26:56 EasyUI给表格绑定数据是最常用的方法,小编分享一下总结出来的两种绑定表格方法,知识在于积累。

第一种:数据存放在数据集中,每一行对应多个值,利用循环把数据绑定到表格

前台代码:

<table id="dg" class="easyui-datagrid" style="width:100%;height:100%;" title="需要设置表格标题"  data-options="
				rownumbers:true,
				singleSelect:true,
				@*autoRowHeight:false,*@
				pagination:true
				@*pageSize:10*@">
            <thead>
                <tr>
                    <th field="colum1">列1</th>
                    <th field="colum2">列2</th>
                    <th field="colum3">列3</th>
                    <th field="colum4">列4</th>
                    <th field="colum5">列5</th>
                    <th field="colum6">列6</th>
                </tr>
            </thead>
        </table>
JS代码:

(function ($) {
    function pagerFilter(data) {
        if ($.isArray(data)) {	// is array
            data = {
                total: data.length,
                rows: data
            }
        }
        var target = this;
        var dg = $(target);
        var state = dg.data('datagrid');
        var opts = dg.datagrid('options');
        if (!state.allRows) {
            state.allRows = (data.rows);
        }
        if (!opts.remoteSort && opts.sortName) {
            var names = opts.sortName.split(',');
            var orders = opts.sortOrder.split(',');
            state.allRows.sort(function (r1, r2) {
                var r = 0;
                for (var i = 0; i < names.length; i++) {
                    var sn = names[i];
                    var so = orders[i];
                    var col = $(target).datagrid('getColumnOption', sn);
                    var sortFunc = col.sorter || function (a, b) {
                        return a == b ? 0 : (a > b ? 1 : -1);
                    };
                    r = sortFunc(r1[sn], r2[sn]) * (so == 'asc' ? 1 : -1);
                    if (r != 0) {
                        return r;
                    }
                }
                return r;
            });
        }
        var start = (opts.pageNumber - 1) * parseInt(opts.pageSize);
        var end = start + parseInt(opts.pageSize);
        data.rows = state.allRows.slice(start, end);
        return data;
    }

    var loadDataMethod = $.fn.datagrid.methods.loadData;
    var deleteRowMethod = $.fn.datagrid.methods.deleteRow;
    $.extend($.fn.datagrid.methods, {
        clientPaging: function (jq) {
            return jq.each(function () {
                var dg = $(this);
                var state = dg.data('datagrid');
                var opts = state.options;
                opts.loadFilter = pagerFilter;
                var onBeforeLoad = opts.onBeforeLoad;
                opts.onBeforeLoad = function (param) {
                    state.allRows = null;
                    return onBeforeLoad.call(this, param);
                }
                var pager = dg.datagrid('getPager');
                pager.pagination({
                    onSelectPage: function (pageNum, pageSize) {
                        opts.pageNumber = pageNum;
                        opts.pageSize = pageSize;
                        pager.pagination('refresh', {
                            pageNumber: pageNum,
                            pageSize: pageSize
                        });
                        dg.datagrid('loadData', state.allRows);
                    }
                });
                $(this).datagrid('loadData', state.data);
                if (opts.url) {
                    $(this).datagrid('reload');
                }
            });
        },
        loadData: function (jq, data) {
            jq.each(function () {
                $(this).data('datagrid').allRows = null;
            });
            return loadDataMethod.call($.fn.datagrid.methods, jq, data);
        },
        deleteRow: function (jq, index) {
            return jq.each(function () {
                var row = $(this).datagrid('getRows')[index];
                deleteRowMethod.call($.fn.datagrid.methods, $(this), index);
                var state = $(this).data('datagrid');
                if (state.options.loadFilter == pagerFilter) {
                    for (var i = 0; i < state.allRows.length; i++) {
                        if (state.allRows[i] == row) {
                            state.allRows.splice(i, 1);
                            break;
                        }
                    }
                    $(this).datagrid('loadData', state.allRows);
                }
            });
        },
        getAllRows: function (jq) {
            return jq.data('datagrid').allRows;
        }
    })
})(jQuery);

    $.ajax({
        type: "get",   //AJAX提交方式
        url: "路径",
        datatype: "json",
        data: "userid=" + "id"+ "&username=" + "name",    //向后台传递参数,无需传递参数就可以删除
        success: function (data) {
            var rows = [];
           
            for (var i = 0; i < data.length; i++) {      //data是返回值的集合
                rows.push({                              //把data数据对应的值压到rows对应数组中
		    colum1: data[i].userid,
                    colum2: data[i].leve,
                    colum3: data[i].Username,
                    colum4: data[i].Tel,
                    colum5: data[i].Mail,
                    colum6: data[i].Explain
                });
            }
            $('#dg').datagrid({ data: rows }).datagrid('clientPaging');
        }, error: function () {                       //执行出错时执行的方法
            $.messager.alert("操作提示", "表格失败,请联系管理员!", "warning");
        }
    });

需要绑定表格时调用AJAX方法,AJAX执行完后会自动调用显示数据方法,表格数据就显示出来了


第二种:直接在前台和JS设置好列名,自动绑定

前台代码:

           <table id="dg" class="easyui-datagrid" title="需要显示表格标题 " data-options="                
				rownumbers:true,
				singleSelect:true,
				autoRowHeight:false,
				pagination:true,
				">
                <thead>
                    <tr>
                        <th data-options="field:'colum1',align:'center'">列名1</th>
                        <th data-options="field:'colum2',align:'center'">列名2</th>
                        <th data-options="field:'colum3',align:'center'">列名3</th>
                        <th data-options="field:'colum4',align:'center'">列名4</th>
                        <th data-options="field:'colum5',align:'center'">列名5</th>
                        <th data-options="field:'colum6',align:'center'">列名6</th>
                    </tr>
                </thead>
            </table>

JS代码:

    $('#dg').datagrid({
        url: '路径?Name=' + Name + "&combox=" + combox,   //设置访问后台路径和传递参数,如果没有参数可以删除
        dataType: 'json',
        width: "100%", //宽度
        striped: true, //把行条纹化(奇偶行背景色不同)
        idField: 'quesID', //标识字段
        loadMsg: '正在加载用户的信息.......', //从远程站点加载数据是,显示的提示消息
        pagination: true, //数据网格底部显示分页工具栏
        singleSelect: false, //只允许选中一行
        pageList: [10, 20, 30, 40, 50], //设置每页记录条数的列表
        pageSize: 10, //初始化页面尺寸(默认分页大小)
        pageNumber: 1, //初始化页面(默认显示第一页)
        beforePageText: '第', //页数文本框前显示的汉字 
        afterPageText: '页 共 {pages} 页',
        displayMsg: '第{from}到{to}条,共{total}条',
        columns: [[ //每页具体内容
                    { field: 'colum1', title: '标题1', width: "13%", align: 'center', editor: 'text' },
                    { field: 'colum2', title: '标题2', width: "13%", align: 'center', editor: 'text' },
                    { field: 'colum3', title: '标题3', width: "13%", align: 'center', editor: 'text' },
                    { field: 'colum4', title: '标题4', width: "13%", align: 'center', editor: 'text' },
                    { field: 'colum5', title: '标题5', width: "13%", align: 'center', editor: 'text' },
                    { field: 'colum6', title: ' 标题6 ', width: "13%", align: 'center', editor: 'text' },
        ]],

        onLoadSuccess: function (data) {

           //表格加载成功后执行的代码,如果不需要可以删除
        }
    })

把JS代码放在一个function函数中就可以了,函数执行时表格就可以绑定数据了

作者:h273979586发表于2017/12/6 20:26:56 原文链接
阅读:3949评论:10查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78607545 /h273979586/article/details/78607545 h273979586 2017-11-28T10:47:25 在做asp.net网站时对表格数据(操作列)进行操作(编辑和添加),制作的弹出框一模一样,只是单击事件执行代码不一样,为了不重新制作窗体,只能动态改变a标签事件。


最初a标签的事件为:<a id='abc' href='#' onclick='edit()'>编辑</a>需要把onclick事件动态变为“add()”

代码:

//更改相应按钮(执行事件)
    $("#abc").attr('onclick', '').unbind('click').click(function () { add(); });

事件已经变为add(),只需在javascript中写add具体方法即可

作者:h273979586发表于2017/11/28 10:47:25 原文链接
阅读:551评论:26查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78545125 /h273979586/article/details/78545125 h273979586 2017-11-15T21:33:35 display:block就是将元素显示为块级元素,总是在新行上开始。高度,行高以及顶和底边距都可控制。

	<div class="fitem" style="display:block">
                <label style="width:80px">密码:</label>
                <input id="dlg_pwd" class="easyui-textbox" type="password" />
	</div>
 	<div class="fitem" style="display:block">
                <label style="width:80px">确认密码:</label>
                <input id="dlg_confirmpwd" class="easyui-textbox" type="password" />
	</div>
效果图:


display:inline就是将元素显示为行内元素,和其他元素都在一行上高,行高及顶和底边距不可改变。

	<div class="fitem" style="display:inline">
                <label style="width:80px">密码:</label>
                <input id="dlg_pwd" class="easyui-textbox" type="password" />
	</div>
 	<div class="fitem" style="display:inline">
                <label style="width:80px">确认密码:</label>
                <input id="dlg_confirmpwd" class="easyui-textbox" type="password" />
	</div>
效果图:


display:inline-block将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。

	<div class="fitem" style="display:inline-block">
                <label style="width:80px">密码:</label>
                <input id="dlg_pwd" class="easyui-textbox" type="password" />
	</div>
 	<div class="fitem" style="display:inline-block">
                <label style="width:80px">确认密码:</label>
                <input id="dlg_confirmpwd" class="easyui-textbox" type="password" />
	</div>
效果图:

PS:第三种方法默认左对齐,如果需要文字右对齐设置CSS即可。

作者:h273979586发表于2017/11/15 21:33:35 原文链接
阅读:261评论:19查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78483238 /h273979586/article/details/78483238 h273979586 2017-11-08T21:07:32 1.创建型模式
前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里有6个具体的创建型模式可供研究,它们分别是:

简单工厂模式(Simple Factory)
工厂方法模式(Factory Method)
抽象工厂模式(Abstract Factory)
创建者模式(Builder)
原型模式(Prototype)
单例模式(Singleton)


2.结构型模式
在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。对象结构的设计很容易体现出设计人员水平的高低,这里有7个具体的结构型模式可供研究,它们分别是:

外观模式/门面模式(Facade门面模式)
适配器模式(Adapter)
代理模式(Proxy)
装饰模式(Decorator)
桥梁模式/桥接模式(Bridge)
组合模式(Composite)
享元模式(Flyweight)


3.行为型模式
在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高,这里有11个具体的行为型模式可供研究,它们分别是:

外观模式/门面模式(Facade)
适配器模式(Adapter)
代理模式(Proxy)
装饰模式(Decorator)
桥梁模式/桥接模式(Bridge)
组合模式(Composite)
享元模式(Flyweight)
作者:h273979586发表于2017/11/8 21:07:32 原文链接
阅读:249评论:13查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78451417 /h273979586/article/details/78451417 h273979586 2017-11-05T21:36:06 最近学习计算机软件设计师考试对于双缓冲重新学习了一下,总结给大家,希望能帮助到大家。

单缓冲技术是当上一个缓冲区数据读入用户区完成时下一个缓冲区开始工作,缓冲读数据和CPU处理数据互不影响。

双缓冲是第一个缓冲区读入数据完成时第二个缓冲区开始工作,读入用户区结束后判断第一个缓冲区是否停止工作,如果停止工作那继续向第一个缓冲读入数据。


【2011年计算机统考真题】某文件占用10个磁盘块,现在要把该文件磁盘块逐个读入主缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为100μs,将缓冲区的数据传送到用户区的时间是50μs,CPU对一块数据进行分析的时间为50μs。在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是()。


单缓冲: 150*10=1500

双缓冲:100*10=1000加最后一个缓冲区的数据传输到用户区并CPU处理时间50+50=100,总时间为1100

作者:h273979586发表于2017/11/5 21:36:06 原文链接
阅读:252评论:13查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78197841 /h273979586/article/details/78197841 h273979586 2017-10-10T21:40:31 目前小菜总结了两种方法:

一、datagrid绑定数据列是通过HTML设置好的

                <table id="dg" title="用户管理" style="width: 700px;table-layout:fixed; height: 300px" data-options="
				rownumbers:true,
				singleSelect:true,
				autoRowHeight:false,
				pagination:true,
				pageSize:10">
                    <thead>
                        <tr>
                            <th field="no" width="80">用户账号</th>
                            <th field="level" width="100">级别</th>
                            <th field="userName" width="80">姓名</th>
                            <th field="phone" width="80" align="right">电话</th>
                            <th field="Email" width="80" align="right">邮箱</th>
                            <th field="explain" width="100" align="right">备注</th>
                            <th field="opera" width="110" data-options="formatter:editDelete">操作列</th>
                        </tr>
                    </thead>
                </table>
JS通过AJAX向后台得到JSON数据,通过$('#userName').combobox('loadData', optionstring)绑定,所有代码easyui教程里都有

添加按钮“操作列”多了一个(data-options="formatter:editDelete")属性,在JS需要添加一个方法即可

function editDelete(val, row, index) {
    return '<a href="#" onclick="a()">编辑</a>';
}

val:是当前单元格内容

row:是当前行对象(所有内容)

index:是当前行索引下标值


二、datagrid绑定数据列是通过JS设置好的
$(document).ready(function () {
  4                $("#table_Data").datagrid({
  5                    toolbar: '#myToolbar',
  6                    url: urlAshx,
  7                    queryParams: { "action": "carlist" },
  8                    method: 'post',
  9                    width: 'auto', 10                    
 12                    singleSelect: true,
 13                    fitColumns: false,
 14                    pagination: true,                  
 18                    rownumbers: true,
 19                    loadMsg: "正在加载数据...",
 20                    columns: [[
 21                        { filed: 'ID', title: '编号', width: 120, hidden: true },
 22                        { filed: 'Name', title: '车辆名称', width: 120, align: 'center' },
 23                        { filed: 'Type', title: '型号', width: 120, align: 'center' },
 24                        { filed: 'LicenseTag', title: '牌号', width: 120, align: 'center' },
 25                        { filed: 'Color', title: '座位数', width: 120, align: 'center' },
 26                        { filed: 'Seats', title: '颜色', width: 120, align: 'center' },
 27                        { filed: 'Remarks', title: '备注', width: 920, align: 'center' },
 28                        {
 29                            filed: 'Action', title: '操作', width: 550, align: 'center', formatter: function (value, row, index) {
 30                                alert(row.Name);
 31                                var Action = "<a href='javascript:void(0);' onclick='Edit(" + row.ID + ")'>修改</a>\
 32                                              | <a href='javascript:void(0);' onclick='Delete(" + row.ID + ")'>删除</a>";
 33                                return Action;
 34                            }
 35                        }
 36                    ]]
 42                });
 43 });
绑定数据后即可

作者:h273979586发表于2017/10/10 21:40:31 原文链接
阅读:560评论:20查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78182053 /h273979586/article/details/78182053 h273979586 2017-10-09T14:13:30 初学JQuery和easyUI对里面知识掌握不是很好,谈一下我的经历,希望帮助大家。

THML动态加载combox写法:

$('id').append("<option value='all'>全部</option>")

加入easyUI之后发现这种不行了,也不出错,经过不断的调试终于把代码调试出来了。

easyUI写法:

//html不变,方法一 ;选择一个用就行 
    $('id').combobox('reload', "url路径")

//方法二
$('id').combobox('loadData', Json数据项)

注意:
      页面代码select中data-options="valueField:'数据项对应id',textField:'显示内容'" 
      json里面数据内容必须和页面代码相对应!

      不一定非是Json数据项,字符串也行,但是要对应。
      var optionstring = ([{ 'Userid': '', 'Username': '全部' }]);
          optionstring.push({ 'Userid': data[i].Userid, 'Username': data[i].Username });
      第一项内容为“全部”,第二项为Username内容


作者:h273979586发表于2017/10/9 14:13:30 原文链接
阅读:466评论:21查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78152228 /h273979586/article/details/78152228 h273979586 2017-10-02T19:53:55 我们都知道程序三种执行结构为:顺序、选择、循环

而并非所有程序都遵循这个规则,例如:ajax

ajax是异步传输模式,当执行ajax里回调函数时代码会自动走向后台,js代码会继续向下运行。

$.ajax({
        type: "get",
        url: "路径",
        datatype: "json",
        success: function (data) {
            alert('成功');
        }, error: function () {
            alert('失败');
        }
    });
alert('目前程序运行位置');
如果url路径请求响应过高,就会出现类似情况。先打印“目前程序运行位置”再打印“成功”


如果两个ajax是并列关系,而且第一个ajax结果影响第二ajax结果,那么这个执行机制可以帮我们解开困惑。

作者:h273979586发表于2017/10/2 19:53:55 原文链接
阅读:557评论:20查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/78023927 /h273979586/article/details/78023927 h273979586 2017-09-18T21:21:14 给大家普及一下Jquery关于option获得值的几种状态:

jQuery("#select1").val();是取得选中文本val的值


jQuery("#select1").text();是取得下拉框所有文本的值


jQuery("#select1  option:selected").text();是选中文本的值

作者:h273979586发表于2017/9/18 21:21:14 原文链接
阅读:583评论:40查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/77913896 /h273979586/article/details/77913896 h273979586 2017-09-09T11:21:44 JQuery用ajax获得后台返回数据给前台用户显示,data日期数据显示/Date(1387900800000)/



JQuery和开发语言不一样,它没有封装好方法让它自动转换为日期,我们需要自己写一个方法,即可

function ChangeDateFormat(cellval) {
    var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10));
    var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
    var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
    return date.getFullYear() + "-" + month + "-" + currentDate;
}






作者:h273979586发表于2017/9/9 11:21:44 原文链接
阅读:932评论:25查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/77879161 /h273979586/article/details/77879161 h273979586 2017-09-07T11:33:15 引用JQuery文件时候报错:

Uncaught ReferenceError: $ is not defined  (anonymous function)



分析原因:

路径不对,检查文件路径是否正确。


如果你是拖过来的也报错那就是你没有引入JQuery库文件。


JQuery和js不一样,js直接拖过来就能用,而JQuery必须引入JQuery库文件。


如果没有JQuery库文件可以在http://download.csdn.net/download/h273979586/9968036 下载


作者:h273979586发表于2017/9/7 11:33:15 原文链接
阅读:442评论:22查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/77616393 /h273979586/article/details/77616393 h273979586 2017-08-27T02:26:45 我们在用asp.net开发时用到界面有EasyUI和BootStrap,听说BootStrap可以兼容手机端,对于初学者其中道理没弄太明白。其实通过JavaScript的更改也可以实现兼容手机端


给大家分享一下,用JavaScript兼容手机端。

if (/钱柜娱乐开户|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {   //判断网页打开是手机还是电脑
                alert('手机打开 ');
		//在此处可以写手机界面样式代码
            } else {                
		alert('电脑打开');		
		//在此处可以写电脑界面样式代码
}




通过另一种思想也可以实现最终的效果。

作者:h273979586发表于2017/8/27 2:26:45 原文链接
阅读:329评论:33查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/77417356 /h273979586/article/details/77417356 h273979586 2017-08-19T21:29:48 前台代码:

$.ajax({
            type: "POST",
            url: "/McoinBonus/bonusUpdate",
            data: "&a=" + a,
            success: function (data) {
                alert(data);
                    });
后台代码返回bool类型:

public bool bonusUpdate()
{
      ......
      return false;
}
如果返回是string类型:

public string bonusUpdate()
{ 
      ......
      return "....";
}


data就是后台返回来的值


success是执行成功调用该方法,如果失败则调用error方法,complete不论是否成功都会执行该方法(获得返回值data.responseText),我们可以根据需要方法。(把success换掉即可)

作者:h273979586发表于2017/8/19 21:29:48 原文链接
阅读:444评论:25查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/77148935 /h273979586/article/details/77148935 h273979586 2017-08-13T19:04:48 一、用于查询语句,查询结果返回datatable类型

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SqlHelper
{
    public class ReadRecord
    {
        //获得数据源连接
        public static string connectionString = ConfigurationManager.AppSettings["ConnStr"];
        public static DataTable readrecord(String cmdtxt, CommandType cmdtype, SqlParameter[] paras)
        {
            SqlConnection conn = new SqlConnection(connectionString);
            SqlCommand cmd = default(SqlCommand);
            cmd = new SqlCommand(cmdtxt,conn);
            cmd.CommandType = cmdtype;
            if (paras.Count()>0)
            {
                cmd.Parameters.AddRange(paras); 
            }                        
            DataTable dt=new DataTable ();
            try
            {
                conn.Open();
                SqlDataAdapter sda = new SqlDataAdapter(cmd);  
                sda.Fill(dt);
                return dt;
            }
            catch //Exception e)
            {
                //MessageBox.Show(e.Message);                
                return null;
            }
            finally
            {
                conn.Close();
            }
            
        }
    }
}

二、用于增删改结果返回受影响的行数

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SqlHelper
{
    public class AddDeleteInsert
    {
        //获得数据源连接
        public static string connectionString = ConfigurationManager.AppSettings["ConnStr"];
        public static int adddeleinter(String cmdtxt, CommandType cmdtype, SqlParameter[] paras)
        {
            SqlConnection conn = new SqlConnection(connectionString);
            SqlCommand cmd = default(SqlCommand);
            cmd = new SqlCommand(cmdtxt, conn);
            cmd.CommandType = cmdtype;
            if (paras.Count()>0)
            {
                cmd.Parameters.AddRange(paras);
            }
            try
            {
                conn.Open();
                int adi = cmd.ExecuteNonQuery();
                return adi;
            }
            catch //Exception e)
            {
                //MessageBox.Show(e.Message);
                return -1;
            }
            finally
            {
                conn.Close();
            }
        }
    }
}


作者:h273979586发表于2017/8/13 19:04:48 原文链接
阅读:674评论:21查看评论
]]>
侯旭日 廊坊师范学院信息技术提高班十三期 - 钱柜娱乐开户 /h273979586/article/details/76847184 /h273979586/article/details/76847184 h273979586 2017-08-07T15:06:51

1.Character 是进行单个字符操作的,


2.String 对一串字符进行操作,不可变类。


3.StringBuffer 也是对一串字符进行操作,是可变类。


String:
    是对象不是原始类型.
    为不可变对象,一旦被创建,就不能修改它的值.
    对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.


StringBuffer:
    是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
    它只能通过构造函数来建立,
    StringBuffer sb = new StringBuffer();
注意:不能通过赋值符号对它进行付值. 
sb = "welcome to here!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer中赋值的时候可以通过它的append()方法.
sb.append("hello");


字符串连接操作中StringBuffer的效率要比String高:


String str = new String("welcome to ");
str += "here";
的处理步骤实际上是通过建立一个StringBuffer,然后调用append(),最后
再将StringBuffer toSting();
这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上要打折扣.


并且由于String 对象是不可变对象,每次操作Sting 都会重新建立新的对象来保存新的值.
这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的. 


看看以下代码:
将26个英文字母重复加了5000次,


        String tempstr = "abcdefghijklmnopqrstuvwxyz";
        int times = 5000;
        long lstart1 = System.currentTimeMillis();
        String str = "";
        for (int i = 0; i < times; i++) {
            str += tempstr;
        }
        long lend1 = System.currentTimeMillis();
        long time = (lend1 - lstart1);
        System.out.println(time);
可惜我的计算机不是超级计算机,得到的结果每次不一定一样一般为 46687左右。
也就是46秒。
我们再看看以下代码


        String tempstr = "abcdefghijklmnopqrstuvwxyz";
        int times = 5000;
        long lstart2 = System.currentTimeMillis();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < times; i++) {
            sb.append(tempstr);
        }
        long lend2 = System.currentTimeMillis();
        long time2 = (lend2 - lstart2);
        System.out.println(time2);
得到的结果为 16 有时还是 0
所以结论很明显,StringBuffer 的速度几乎是String 上万倍。当然这个数据不是很准确。因为循环的次数在100000次的时候,差异更大。不信你试试


 


 


如果还是不能够明白:


 


1)String的联合+方法与StringBuff的append方法的区别:


String的+运算符在进行字符串运算时,首先将当前的字符串对象转换为StringBuff 类型,调用其append方法,最后再将生成的StringBuff 对象通过其toString 方法转换为String类型的字符串,所以其效率要低。


但是在可读性上,还是String的连接运算符要高。


2)StringBuff是线程安全的


String是线程是非安全的


3)String是不可以修改的字符串对象,而StringBuff是可以修改的。


public static boolean fileCopy(String srcStr, String destStr) {


File srcFile = null;


File destFile = null;


Reader reader = null;


Writer writer = null;


boolean flag = false;


try {


srcFile = new File(srcStr);


if (!srcFile.exists()) {


System.out.println(“源文件不存在”);


System.exit(0);


} else {


reader = new FileReader(srcFile);


}


destFile = new File(destStr);


writer = new FileWriter(destFile);


char[] buff = new char[1024];


int len;


String str = “”;


StringBuffer sbuff = new StringBuffer();


while ((len = reader.read(buff)) != -1) {


//        str += new String(buff, 0, len);


sbuff.append(new String(buff,0,len));


}


//      writer.write(str.toCharArray());


writer.write(sbuff.toString().toCharArray());


flag = true;


writer.flush();


reader.close();


writer.close();


} catch (IOException e) {


System.out.println(“文件拷贝异常:= ” + e.getMessage());


}


return flag;


}
作者:h273979586发表于2017/8/7 15:06:51 原文链接
阅读:248评论:19查看评论
]]>