自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(568)
  • 资源 (8)
  • 收藏
  • 关注

转载 mysql 添加用户访问权限(

本文来自http://bbs.chinaunix.net/thread-3641057-1-1.html,感谢作者【王富贵】grant 权限 on 数据库对象 to 用户 passwordmysql> grant all on *.* to root@"%" identified by 'abc123';Query OK, 0 rows affected (0.01 s

2014-03-09 20:23:38 752

转载 Mysql创建及删除用户命令

一, 创建用户:命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则

2014-03-09 20:23:10 3005

转载 PLSQL怎样导出oracle表结构

tools->export tables 是导出表结构还有数据tools->export user objects是导出表结构可以用tools->export tables用中间的sql inserts页面,选中create tables选项,where clause 里写入 where rownum如果表包含有CLOB类型字段的话,sql是无法导出的。这时候可以改用PL/

2014-02-26 17:45:25 700

转载 mysql 实战 or、in与union all 的查询效率

OR、in和union all 查询效率到底哪个快。网上很多的声音都是说union all 快于 or、in,因为or、in会导致全表扫描,他们给出了很多的实例。但真的union all真的快于or、in?本文就是采用实际的实例来探讨到底是它们之间的效率。1:创建表,插入数据、数据量为1千万【要不效果不明显】。 Sql代码 drop table i

2014-02-14 16:34:08 605

转载 SQL中IN和EXISTS用法的区别

NOT INSELECT DISTINCT MD001 FROM BOMMD WHERE MD001 NOT IN (SELECT MC001 FROM BOMMC)NOT EXISTS,exists的用法跟in不一样,一般都需要和子表进行关联,而且关联时,需要用索引,这样就可以加快速度select DISTINCT MD001 from BOMMD WHERE NOT EXISTS

2014-02-14 16:19:00 457

转载 Hibernate双向多对一关系

Hibernate双向多对一关系 废话不多说,先说说这两个对象。 帐号,就是用户了;相册,当然是用户的相册。用户与相册是一对多关系,反之,相册与用户是多对一关系。现在我们看两个对象的代码。 Account Java代码  import java.io.Serializable;  import java.util.Date;  import java

2013-12-29 14:21:29 704

转载 $ProxyXX cannot be cast to 类型

今天在做项目的过程中遇到了Spring事务代理类型转换问题($ProxyXX cannot be cast to 类型),经过网上收集找到了解决方案,特此分享,忘大家多多指教。 一、问题的来由: (例子基于S2SH框架)     首先晒晒我的项目包的层次结构:       --src-----com.dao.inter 接口包-----com.dao.base 父类包,实现

2013-12-27 18:45:44 588

转载 struts2 向action提交list

1. 基本原理 在action里面定义 private List list=new ArrayList(); 页面写上    那么提交过去就是3个元素的list了 如果list里面是自己的类 可以这样 private List users; 在页面这样    就可以了。 注:这种方法存在一个问题,就是list的控制是手动控制的,如

2013-12-27 17:36:34 575

转载 iBatis简单入门教程

http://www.cnblogs.com/ycxyyzw/archive/2012/10/13/2722567.htmliBatis 简介:iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快。如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis 已经

2013-11-28 11:22:51 457

转载 Java如何获取文件编码格式

http://www.cnblogs.com/java0721/archive/2012/07/21/2602963.html1:简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK。 按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理就是只要读出文件前三个字节,判定这些字节的值,就可以得

2013-11-27 16:20:33 1303

转载 过滤器和拦截器的比较及未登录用户权限限制的实现

http://blog.csdn.net/zlcoy_1/article/details/5009198 需要实现的功能:判断用户是否已登录,未登录用户禁止访问任何页面或action,自动跳转到登录页面。过程:因为对过滤器和拦截器都不熟悉,开始两种方式都问题不断,后调试通过,贴在这里留作小结和备忘过滤器filter实现配置:web.xml[xhtml]

2013-11-24 22:48:01 1106

转载 拦截器和过滤器的区别

http://java.chinaitlab.com/Struts/892556.html拦截器和过滤器的区别:1、拦截器是基于java的反射机制的,而过滤器是基于函数回调2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用4、拦截器可以访问action上下文、值栈里的

2013-11-24 22:45:31 659

转载 Oracle XE 安装时怎样转换成 ZHS16GBK

Oracle XE 安装时创建数据库的字符集是 AL32UTF8 怎样转换成 ZHS16GBK?---------------------connect / as sysdba;shutdown immediate startup mount alter system enable restricted session ; alter system se

2013-11-22 17:15:54 790

转载 Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules

最近在用eclipse做项目,新建项目时什么都贪新,用最新的版本,在Dynamic web module version栏里选了最新的3.0版本,布署项目的时候就出现了如期的错误,在网上看到http://hi.baidu.com/yolanda441/b ... 41d36dd1164e2e.html这位兄弟的博客,解决了问题,现将方法贴于此,希望对别人有所帮助:《通过search,发

2013-11-22 10:55:39 585

转载 gethibernatetemplate find条件查询方法

Spring中常用的hql查询方法(getHibernateTemplate())--------------------------------- 一、find(String queryString); 示例:this.getHibernateTemplate().find("from bean.User"); 返回所有User对象 二

2013-11-17 17:22:56 547

转载 Spring整合Struts

http://blog.csdn.net/startym/article/details/3349970 Spring整合Struts为什么整合?使用Spring的IOC功能将业务类注入Action由Spring创建并管理ActionSpring容器通过Web容器启动(配置监听器ContextLoaderListener即可完成)步骤:1、如何启动Spring容

2013-11-13 18:30:16 447

转载 Spring整合Hibernate的步骤

http://blog.csdn.net/startym/article/details/3342132为什么要整合Hibernate?1、使用Spring的IOC功能管理SessionFactory对象LocalSessionFactoryBean2、使用Spring管理Session对象 HibernateTemplate3、使用Spring的功能实现声明式的事务管理

2013-11-13 18:26:06 499

转载 java创建xml文件中文乱码

java 中由Writer类继承下来的子类没有提供编码格式处理,所以dom4j也就无法对输出的文件进行正确的格式处理。这时候所保存的文件会以系统的默认编码对文件进行保存,在中文版的window下java的默认的编码为GBK,也就是所虽然我们标识了要将xml保存为utf-8格式但实际上文件是以GBK 格式来保存的,所以这也就是为什么能够我们使用GBK、GB2312编码来生成xml文件能正确的被解析,

2013-11-07 14:50:05 666

转载 spring2.5笔记 - 第十课 Spring整合Hiberante3

http://sishuok.com/forum/blogPost/list/3720.html Spring整合hibernate3重点就是需要初始化SessionFactory这个bean,需要在Spring的配置文件中进行配置,实现实例如下:Spring配置hibernate3的SessionFactory实现上xml方式的配置文件与annotation注解方式的区别,只是在

2013-10-28 17:02:24 591

转载 Hibernate Annotation (Hibernate 注解)

http://www.cnblogs.com/hongten/archive/2011/07/20/2111773.html进入:http://www.hibernate.org说明文档:英文:http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/中文:http://docs.j

2013-10-28 14:41:53 498

转载 log4j 分级别写入不同的日志文件

http://z-jiankun.iteye.com/blog/768764 class="org.apache.log4j.RollingFileAppender">class="org.apache.log4j.RollingFileAppender">

2013-10-17 12:19:22 672

转载 JAVA读取文件的创建时间和修改时间

http://emily2ly.iteye.com/blog/742799 import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java

2013-10-15 15:18:39 1057

转载 java dom4j操作xml

http://www.blogjava.net/Todd/archive/2010/05/22/321618.html  SAXReader reader = new SAXReader();Document doc = reader.read(...); List childNodes = doc.selectNodes("//Config/Child/ChildNode

2013-10-14 17:26:41 448

转载 Java中遍历文件夹的2种方法

http://www.java3z.com/cwbwebhome/article/article5/5924.html?id=1838 Java遍历文件夹的2种方法:A.不使用递归:import java.io.File;import java.util.LinkedList;public class FileSystem { public static vo

2013-10-14 15:32:33 505

转载 eWebEditor在ie9下按钮功能失效的解决办法

http://www.cnblogs.com/visi_zhangyang/archive/2012/08/03/2621647.html 网上有不少关于ewebeditor在线编辑器上的按钮上按钮无效的问题,多数是解决IE7和IE8的问题,但对于IE9又出现了同样的问题,为此,提供以下办法,即使以后微软升级到更高的IE版本也不会有此问题。解决方法如下:打开editor.js

2013-10-09 10:59:37 857

原创 DIV CSS遮罩层

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml" >    DIV CSS遮罩层            function showdiv(obj1,obj2) {    document.getElementById(obj2).style.top=

2013-09-28 23:04:26 629

转载 捕捉网页关闭与取消关闭事件

在做Web开发时,我们经常用到页面关闭事件onbeforeunload,可以给用户一个选择放弃关闭的机会,就比如这个博客编辑器。如果用户选择了离开,那么onunload事件自然会触发;但若用户选择了取消,又该如何检测呢?我们假定一个页面离开取消事件,叫做onunloadcancel。显然,这个事件应触发在用户按下对话框的取消按钮之后。但关闭提示对话框的触发流程并不是那么简单。我们先来回顾下这个

2013-09-27 16:18:44 860

转载 windows 如何查看端口占用情况?

开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列"        经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用

2013-09-23 10:25:03 485

转载 解决XHTML标准的浮动层滚动问题

解决网页文件中包含XHTML符合国际W3C标准的文件头,导致CSS文件中的滚动条样式代码和部分js运行不正常的问题。这个指定是采用了新的XHTML标准,在这个标准中:document.body.scrollTop永远返回0,在不包含以上文件头的网页文件中,浮动层还能正常显示,当加入了以上文件头以后,网页中的浮动层就“不能动弹了”,那么需要进行一些改动:将docume

2013-09-07 17:09:41 545

转载 JS解析XML文件和XML字符串

JS解析XML文件    loadXML = function(xmlFile){        var xmlDoc=null;        //判断浏览器的类型        //支持IE浏览器        if(!window.DOMParser && window.ActiveXObject){            var xmlDomVersions =

2013-09-06 03:31:07 763

转载 Js+XML 操作

我的xml文件Login.xml如下.xml version="1.0" encoding="utf-8" ?>Login>    Character>        C Text="热血" Value="0">C>        C Text="弱气" Value="1">C>        C Text="激情" Value="2">C>        C Te

2013-09-06 03:30:30 610

原创 Js+XML字符串 操作并转成json格式字符串

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/1999/xhtml">js xml    loadXML = function(xmlString){        var xmlDoc=null;        //判断浏览器的类型        //支

2013-09-06 03:28:28 1023

转载 java产生随机数通用函数

public static String getRandomNum(int num) {  String[] digits = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };  Random rnum = new Random(new Date().getTime());  for (int i = 0; i    int

2013-08-14 15:08:00 786

转载 java后台用post方式提交参数

public static void main(String[] args) {  URL url = null;  HttpURLConnection httpurlconnection = null;  try {   url = new URL("http://www.ip138.com/ips.asp");   httpurlconnection = (HttpURLC

2013-08-13 15:40:41 1369

转载 forward、sendRedirect及Jsp和Servlet之间的跳转

http://www.blogjava.net/yzzh9/archive/2009/06/09/280908.html 使用同一个 request ,是在服务器端跳转,浏览器显示的是第一个页面的名字,因为客户端(浏览器)不知道它在服务器端跳转了。 Response.sendRedirect 是两个不同的 request ,是在客户端跳转,浏览器显示的是跳转后的页面的名字。

2013-08-11 01:05:32 886

转载 Java——Servlet的配置和测试

本文以一个实例介绍如何用Java开发Servlet。主要内容有:配置和验证Tomcat。测试Servlet在这之前需要安装Java,请参考“Java——环境配置和Hello”。第一部分:配置和验证Tomcat:1,下载Tomcathttp://tomcat.apache.org/download-70.cgi2, 设置classpath追加C:\MY\t

2013-08-11 00:52:39 649

转载 Eclipse中文语言包安装和设置中文Doc

对于英语水平不好或者初学者来说使用中文开发环境可以有效提高学习效率,便于快速的学习和上手,不过对于当前的技术环境学习英语还是非常有必要的,当对Eclipse掌握到一定程度还是应该多使用英语环境来开发,以便更进一步的深入学习和了解。下面让我们来学习如何为Eclipse安装语言包和设置中文的文档。 准备   在开始所有的工作前请提前安装好Eclipse,下载地址:http://www.ec

2013-08-10 10:18:30 727

转载 JSP转发和重定向的区别

JSP转发和重定向的区别http://blog.csdn.net/CYHJRX/archive/2009/02/26/3938252.aspx 好长时间不看,又把基础只是给忘了。今天好好的再看看。呵呵呵......温故而知新啊!!!1.RequestDispatcher.forward()――转发    是在服务器端起作用,当使用forward()时, Servle

2013-07-29 16:12:13 508

转载 Mysql 免安装 配置步骤

1:设置MYSQL安装路径  下载MYSQL4.1.22免安装程序包mysql-noinstall-4.1.22-win32.zip,解压后可以看到mysql-4.1.22-win32这个文件夹。现在把这个文件夹名字换成mysql5,然后把它移动到目录  D:\常用下。现在MySQL的安装目录是  D:\常用\mysql5(mysql-noinstall-5.0.22下载地址http:

2013-07-25 11:21:48 597

转载 mysql免安装版配置与使用方法

以mysql-noinstall-5.1.6(win32)为例1>把压缩文件mysql-noinstall-5.1.6-alpha-win32.zip解压到一个目录下,在环境变量中设置MYSQL_HOME,把%MYSQL_HOME%\bin 加入到 path。2>创建my.ini配置文件,内容如下:[mysqld]#设置basedir指向mysql的安装路径basedir=

2013-07-25 11:21:12 573

jQueryAPI,ajax十分好用

jQuery 核心函数 jQuery(expr, [context]) jQuery(html, [ownerDoc]) jQuery(html, props) jQuery(elements) jQuery() jQuery(callback) jQuery 对象访问 each(callback) size() length selector context get() get(index) index(subject) 数据缓存 data([name] , [value]) data(obj) removeData(name) $.data([el], [key], [val]) 队列控制 queue(name ,[cb|queue]) dequeue(name) clearQueue([queueName]) 插件机制 jQuery.fn.extend(object) jQuery.extend(object) 多库共存 jQuery.noConflict([ex]) 属性 属性 attr(name) attr(properties) attr(key, value) attr(key, fn) removeAttr(name) CSS 类 addClass(class | fn) removeClass([class | fn]) toggleClass(class|fn [, sw]) HTML代码/文本/值 html( [val | fn] ) text( [val | fn] )

2012-05-14

delphi动态虚拟覆盖重载重定义的区别

DELPHI中方法的类型及其覆盖、重载 1、静态方法是方法的缺省类型,对它就像对通常的过程和函数那样调用,编译器知道这些方法的地址,所以调用一个静态方法时它能把运行信息静态地链接进可执行文件,所以,静态方法速度最快,但它们却不能被覆盖来支持多态性。 2、虚拟方法和静态方法的调用方式相同。由于虚拟方法能被覆盖,在代码中调用一个指定的虚拟方法时编译器并不知道它的地址,因此,编译器通过建立虚拟方法表(VMT)来查找在运行时的函数地址。所有的虚拟方法在运行时通过VMT来高度,一个对象的VMT表中除了自己定义的虚拟方法外,还有它的祚的所有的虚拟方法,因此虚拟方法比动态方法用的内存要多,但它执行得比较快。 3、动态方法跟虚拟方法基本相似,只是它们的高度系统不同。编译器为每一个动态方法指定一个独一无二的数字,用这个数字和动态方法的地址构造一个动态方法表(DMT)。不像VMT表,在DMT表中仅有它声明的动态方法,并且这个方法需要祖先的DMT表来访问它蓁的动态方法。正因为这样动态方法比虚拟方法用的内存要少,但执行起来罗慢,因为有可能要到祚对象的DMT中查找动态法。 4、OP通过覆盖使一方法在不同的派生类间表现出不同的行为。OP中能被覆盖的方法是在声明时被标识为virtual或dynamic的方法。为了覆盖一个方法,在派生类的声明中用override代替virtual或dynamic。用了override后,编译器就会用新的方法替换VMT中原先的方法,而原先的方法也还存在,而如果用override再次声明一个静态方法,则是真正的覆盖,是用新的方法完全替换在祖先类中的同明方法。 5、方法重载的意义:比如说,你要写一个求两数商的函数(当然只是个比喻),你希望这个函数可以处理所有的数值类型,但PASCAL的运算对类型实行严格检查,你不得不用不同的程序来运算不同类型的数值,这样你就必须为每一种类型写一个同样功能的函数,并使用不同的函数名,坏处我想你是知道的。而重载却可以解决这个问题,同样的函数名,编译器可以用不同的形参类型决定调用哪个函数。Top dynamic和virtual的不同之处 delphi动态虚拟覆盖重载重定义的区别 (www.ip8000.com www.sql8.net)

2010-11-24

delphi动态虚拟覆盖重载重定义的区别

DELPHI中方法的类型及其覆盖、重载 1、静态方法是方法的缺省类型,对它就像对通常的过程和函数那样调用,编译器知道这些方法的地址,所以调用一个静态方法时它能把运行信息静态地链接进可执行文件,所以,静态方法速度最快,但它们却不能被覆盖来支持多态性。 2、虚拟方法和静态方法的调用方式相同。由于虚拟方法能被覆盖,在代码中调用一个指定的虚拟方法时编译器并不知道它的地址,因此,编译器通过建立虚拟方法表(VMT)来查找在运行时的函数地址。所有的虚拟方法在运行时通过VMT来高度,一个对象的VMT表中除了自己定义的虚拟方法外,还有它的祚的所有的虚拟方法,因此虚拟方法比动态方法用的内存要多,但它执行得比较快。 3、动态方法跟虚拟方法基本相似,只是它们的高度系统不同。编译器为每一个动态方法指定一个独一无二的数字,用这个数字和动态方法的地址构造一个动态方法表(DMT)。不像VMT表,在DMT表中仅有它声明的动态方法,并且这个方法需要祖先的DMT表来访问它蓁的动态方法。正因为这样动态方法比虚拟方法用的内存要少,但执行起来罗慢,因为有可能要到祚对象的DMT中查找动态法。 4、OP通过覆盖使一方法在不同的派生类间表现出不同的行为。OP中能被覆盖的方法是在声明时被标识为virtual或dynamic的方法。为了覆盖一个方法,在派生类的声明中用override代替virtual或dynamic。用了override后,编译器就会用新的方法替换VMT中原先的方法,而原先的方法也还存在,而如果用override再次声明一个静态方法,则是真正的覆盖,是用新的方法完全替换在祖先类中的同明方法。 5、方法重载的意义:比如说,你要写一个求两数商的函数(当然只是个比喻),你希望这个函数可以处理所有的数值类型,但PASCAL的运算对类型实行严格检查,你不得不用不同的程序来运算不同类型的数值,这样你就必须为每一种类型写一个同样功能的函数,并使用不同的函数名,坏处我想你是知道的。而重载却可以解决这个问题,同样的函数名,编译器可以用不同的形参类型决定调用哪个函数。Top www.ip8000.com sql8.net

2010-11-24

高清缩略图代码,可删除原图不会出现在XXX.jpg正在使用中,水印代正在研究中

我在网上用了很多的相关代码或者缩略图水印类,但是都有一个问题就是删除不了原图 public static void myGetThumbnailImage(string SourceFile, string strSavePathFile, int ThumbWidth, int ThumbHeight, string BgColor) { System.Drawing.Image oImg = System.Drawing.Image.FromFile(SourceFile); //小图 int intwidth, intheight; if (oImg.Width > oImg.Height) { if (oImg.Width > ThumbWidth) { intwidth = ThumbWidth; intheight = (oImg.Height * ThumbWidth) / oImg.Width; } else { intwidth = oImg.Width; intheight = oImg.Height; } } else { if (oImg.Height > ThumbHeight) { intwidth = (oImg.Width * ThumbHeight) / oImg.Height; intheight = ThumbHeight; } else { intwidth = oImg.Width; intheight = oImg.Height; } } //构造一个指定宽高的Bitmap Bitmap bitmay = new Bitmap(intwidth, intheight); Graphics g = Graphics.FromImage(bitmay); Color myColor; if (BgColor == null) myColor = Color.FromName("white"); else myColor = Color.FromName(BgColor); //用指定的颜色填充Bitmap g.Clear(myColor); g.InterpolationMode = InterpolationMode.HighQualityBicubic; //开始画图 g.DrawImage(oImg, new Rectangle(0, 0, intwidth, intheight), new Rectangle(0, 0, oImg.Width, oImg.Height), GraphicsUnit.Pixel); bitmay.Save(strSavePathFile, System.Drawing.Imaging.ImageFormat.Jpeg); g.Dispose(); bitmay.Dispose(); oImg.Dispose(); //删除源图 try { File.Delete(SourceFile); } catch { } }

2009-09-29

软件开发文档|需求说明|设计说明|国简标准-软件

软件开发文档|需求说明|设计说明|国简标准-软件

2009-03-12

经典cookie购物车源码[GridView实现]

特别说明请注意: 根许多网友反应, using Maticsoft.Functions; 这些代码看不懂 其实Functions 这个dll是我定义常用的函数类,如果需要跟我联系索取http://sql8.net 下面有我的群号, 其中 ArtsShop.Model.Arts_Product _p = new ArtsShop.Model.Arts_Product(); ArtsShop.BLL.Arts_Product p = new ArtsShop.BLL.Arts_Product(); _p = p.GetModel(id); 这是我的商品信息的类,三层结构,这个在用时你们只能换成你们自己的,这些代码完全可以删除, 比如 MyDr[1] = _p.Title; 用来读取商品名的,你们可以改MyDr[1] = dr["productname"].ToString();就行了, AddToCart.aspx页面代码 无标题页 <asp:TextBox ID="TextBox1" runat="server" Text='' Width="44px"> <asp:Label ID="Label1" runat="server" Text=''> 保存 取消 编辑 继续购物 清空购物车 下订单 AddToCart.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 Maticsoft.Functions;public partial class AddToCart : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { int ProID; HttpCookie cookie; bool Tempbl = false; string Tempstr; if (!Page.IsPostBack) { if (!object.Equals(Request.QueryString["id"], null)) { ProID = int.Parse(Request.QueryString["id"]); //创购物车cookie yxy .//sql8.net if (object.Equals(Request.Cookies["ztbscart"], null)) cookie = new HttpCookie("ztbscart"); else cookie = Request.Cookies["ztbscart"]; //判断是否已存在于购物车内 yxy // sql8.net for (int i = 0; i < cookie.Values.Keys.Count; i++) { if (!object.Equals(cookie.Values.Keys[i], null)) { Tempstr = cookie.Values.AllKeys[i].ToString(); if (Tempstr.Trim() != "") { if (ProID == int.Parse(cookie.Values.AllKeys[i])) { Tempbl = true; break; } } } } //不未购买过则加入购物车 yxy //sql8.net if (!Tempbl) cookie.Values.Add(ProID.ToString(), "1"); else { } TimeSpan ts = new TimeSpan(0, 0, 10, 0); cookie.Expires = DateTime.Now + ts; Response.AppendCookie(cookie); } BindGrid(); } } //绑定数据 yxy //sql8.net private void BindGrid() { DataTable MyDt; DataRow MyDr; string str = ""; MyDt = new DataTable(); MyDt.Columns.Add(new DataColumn("id", str.GetType())); MyDt.Columns.Add(new DataColumn("Title", str.GetType())); MyDt.Columns.Add(new DataColumn("Num", str.GetType())); MyDt.Columns.Add(new DataColumn("Price", str.GetType())); MyDt.Columns.Add(new DataColumn("Discount", str.GetType())); MyDt.Columns.Add(new DataColumn("Vipprice", str.GetType())); MyDt.Columns.Add(new DataColumn("Totle", str.GetType())); if (!object.Equals(Request.Cookies["ztbscart"], null)) { HttpCookie cookie = Request.Cookies["ztbscart"]; double Totle; //Response.Write("|" + Request.Cookies["ztbscart"].Values.Keys[1].ToString() + "|"); //Response.End(); for (int i = 0; i < cookie.Values.Keys.Count; i++) { int id; MyDr = MyDt.NewRow(); if (cookie.Values.AllKeys[i] != "" && cookie.Values[i] != "") { id = int.Parse(cookie.Values.AllKeys[i].ToString()); ArtsShop.Model.Arts_Product _p = new ArtsShop.Model.Arts_Product(); ArtsShop.BLL.Arts_Product p = new ArtsShop.BLL.Arts_Product(); _p = p.GetModel(id); MyDr[0] = id; MyDr[1] = _p.Title; MyDr[2] = cookie.Values[i]; MyDr[3] = _p.Price; MyDr[4] = _p.Discount; MyDr[5] = _p.Vipprice1; Totle = double.Parse(MyDr[2].ToString()) * double.Parse(MyDr[5].ToString()); MyDr[6] = Totle; MyDt.Rows.Add(MyDr); } } GridView1.DataSource = MyDt.DefaultView; GridView1.DataBind(); } } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { //编辑某行数量 yxy //sql8.net GridView1.EditIndex = e.NewEditIndex; BindGrid(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { //取消更新 yxy //sql8.net GridView1.EditIndex = -1; BindGrid(); } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { //更新数量 yxy //sql8.net string num; TextBox tempbx = new TextBox(); Label templb = new Label(); tempbx = (TextBox)(GridView1.Rows[e.RowIndex].Cells[6]).Controls[1]; num = tempbx.Text.ToString(); HttpCookie cookie = new HttpCookie("ztbscart"); for (int i = 0; i < GridView1.Rows.Count; i++) { string id; string tempnum; id = GridView1.Rows[i].Cells[1].Text.ToString(); if (e.RowIndex == i) tempnum = num; else { templb = (Label)(GridView1.Rows[i].Cells[6]).Controls[1]; tempnum = templb.Text.ToString(); } if (tempnum.Trim() == "") tempnum = "0"; //Response.Write("ID:"+id.ToString() + "Num:"+tempnum+":"+i+"");//测试用途 yxy//sql8.net cookie.Values.Add(id, tempnum); } //Response.End(); TimeSpan ts = new TimeSpan(0, 0, 10, 0); cookie.Expires = DateTime.Now + ts; Response.AppendCookie(cookie); GridView1.EditIndex = -1; Message.GoTo("AddToCart.aspx"); } protected void LinkButton4_Click(object sender, EventArgs e) { //继续购物 yxy //sql8.net Message.WebClose(); } protected void LinkButton3_Click(object sender, EventArgs e) { //清空购物车 yxy //sql8.net CheckBox tempcb = new CheckBox(); HttpCookie cookie = new HttpCookie("ztbscart"); Label templb = new Label(); for (int i = 0; i < GridView1.Rows.Count; i++) { tempcb = (CheckBox)(GridView1.Rows[i].Cells[0]).Controls[1]; if (!tempcb.Checked) { string id; string tempnum; id = GridView1.Rows[i].Cells[1].Text.ToString(); templb = (Label)(GridView1.Rows[i].Cells[6]).Controls[1]; tempnum = templb.Text.ToString(); if (tempnum.Trim() == "") tempnum = "0"; //Response.Write("ID:"+id.ToString() + "Num:"+tempnum+":"+i+"");//测试用途 yxy//sql8.net cookie.Values.Add(id, tempnum); } } TimeSpan ts = new TimeSpan(0, 0, 10, 0); cookie.Expires = DateTime.Now + ts; Response.AppendCookie(cookie); Message.GoTo("AddToCart.aspx"); } protected void CheckAll_CheckedChanged(object sender, EventArgs e) { //全选事件 yxy //sql8.net CheckBox tempcb = new CheckBox(); bool tempbl; tempcb = (CheckBox)(GridView1.HeaderRow.Cells[0]).Controls[1]; tempbl = tempcb.Checked; for (int i = 0; i < GridView1.Rows.Count; i++) { tempcb = (CheckBox)(GridView1.Rows[i].Cells[0]).Controls[1]; tempcb.Checked = tempbl; } } } _________________________________________________________________________ 如转载请注明原出处 www.sql8.net

2008-09-11

图书店源码asp数据sql

书库源码asp数据sql如果有问题请上www.sql8.net交流

2008-09-09

图书店系统.net2003 sql2000

很好用的,购物车不错,如果问题可到www.sql8.net交流

2008-09-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除