一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Programming Language

线程间操作无效: 从不是创建控件 [控件名称] 的线程访问它

我现在正在使用vs2010英文版,平常也很少看那些有的没的文字,而且在写程序的时候很”明智”的异常捕获并且写进日志里去,所以没有出现那个可爱的调试状态下出现异常的那个小框框. 我在上网查了一会儿,有人说直接设置控件的CheckForIllegalCrossThreadCalls属性为false,但是因为可能的不安全因素所以还是不用的好.当然还有写一个委托来同步调用.但是我觉得它有点麻烦,就放弃用委托同步了. 后来我搞了好多种写法,都摆脱不了这个怨念,最终也摆脱了异常捕获并抛出了这个小框框. 框框上明确的说道:”线程间操作无效: 从不是创建控件 [控件名称]  的线程访问它。”但是在框框的Suggestion列表中显示出了一条项目,大意是:”如何:对 Windows 窗体控件进行线程安全调用.”,我点开它,并且跳进了MSDN. 原来在MSDN上就有教咱如果夸线程操作控件啊.亏我还Google半天呢. MSDN上的办法就是使用委托来同步调用控件的.具体方法我也就不卖关子了.因为MSDN上的代码比较繁多,所以我稍微改进了一下. //首先声明一个委托. delegate void SetValueDelegate(int val);    //模仿程序中的跨线程调用 public void Progress() {     Thread t = new Thread(() =>         {             //跨线程由此开始             SetValue(100);         });     t.Start(); }    //关键部分在这里 public void SetValue(int val) {     //InvokeRequired属性当非创建本控件线程操作的时候     //它返回true,此时使用窗体(该控件的创建者)的Invoke方法创建同步调用.     //妙哉,妙哉!     if (ProgressBar1.InvokeRequired)     {         var svd = new SetValueDelegate(SetValue);         this.Invoke(svd, val);     }     else     {         ProgressBar1.Value = val;     } } 好了,就是这样,非讨论文章就越精炼越好.希望能帮到你. 最后附上MSDN的地址:这里

龙生   08 Jan 2011
View Details

去掉ecshop2.7.0底部版权Powered by ecshop

  在ecshop2.7.0开始,底部版权Powered by ecshop如果删除了之后,就会发现Powered by ecshop到处乱跑,如何彻底删除Powered by ecshop版权呢。首先,需要打开js/common.js删除以下js函数. onload = function(){    var link_arr = document.getElementsByTagName(String.fromCharCode(65));    var link_str;    var link_text;    var regg, cc;    var rmd, rmd_s, rmd_e, link_eorr = 0;    var e = new Array(97, 98, 99,                      100, 101, 102, 103, 104, 105, 106, 107, 108, 109,                      110, 111, 112, 113, 114, 115, 116, 117, 118, 119,                      120, 121, 122                      );   try  {    for(var i = 0; i < link_arr.length; i++)    {       link_str = link_arr[i].href;      if (link_str.indexOf(String.fromCharCode(e[22], 119, 119, 46, e[4], 99, e[18], e[7], e[14],                                              e[15], […]

龙生   14 Dec 2010
View Details

SQLHelper.cs(SQLServer版)

 

龙生   12 Dec 2010
View Details

PHP+Access乱码问题解决办法

    由于最近在改版一个PHP的网站程序,但原网站使用的是ASP+Access,所以要把Access数据库中的记录全部转换到Mysql中,并且新的网站所有页面使用的都是UTF-8的编码格式,于是就有了现在的问题。     不过问题终于还是在10分钟内得到解决了。先上代码: <?php$connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("wenxue.mdb"); $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC); $query=odbc_do($connid,"select top 1 * from articles");  while(odbc_fetch_row($query)){  for($i=0;$i<4;$i++){   $record1[$i] = odbc_result($query,$i+1);   echo iconv('gb2312′,’utf-8',$record1[$i]);  echo " ";  }  echo "<br>"; } ?>       其实,PHP连接Access数据库的方法有很多,这里只是其中的一种。重要的是解决乱码问题,也就是iconv方法的使用(文中的粗体)。 转自:http://neville.liu.blog.163.com/blog/static/4993878120096279929917/

龙生   10 Dec 2010
View Details

ecshop文件夹结构说明

 

龙生   08 Dec 2010
View Details

ecshop二次开发集锦

1:如何修改网站"欢迎光临本店" 回答:languages\zh_cn\common.php文件中, $_LANG['welcome'] = '欢迎光临本店';将他修改成你需要的字样。 2:如何修改首页"热门搜索关键字" 回答:后台->系统设置->网店设置->显示设置->首页搜索关键字,修改他的内容,然后保存 3:如何修改首页标题 "Powered by ECShop" 回答:includes/lib_main.php,找到$page_title = $GLOBALS['_CFG']['shop_title'] . ' – ' . 'Powered by ECShop';修改成$page_title = $GLOBALS['_CFG']['shop_title']就可以了。 4:如何去除cshop底部查询信息的显示 回答:library/page_footer.lbi中,删除 {insert name=’query_info'} 5:如何发布首页公告 回答:后台->系统设置->商店设置->网店信息->商店公告.填写你需要的公告就可以了. 6:如何发布站内新闻 ecshop管理文章十分灵活,既可以管理帮助信息,也可以管理站内文章.站内新闻. 1:增加文章帮助信息 后台->文章分类->增加文章分类->(选择)网店帮助分类-> 填写分类的名称xxx 后台->文章列表->增加文章->选择网店帮助分类(xxx)->发布文章 2:增加站内信息,站内新闻 后台->文章分类->增加文章分类->增加一个文章顶级分类news 后台->文章类表->增加文章->选择分类news->发布文章 7:如何修改网站logo 回答:用你的logo图片替换/themes/default/images/logo.gif中图片就可以了 8:如何修改产品图片的大小 回答:在ecshop/themes/default/style.css中,找到.goodsItem .goodsimg{width:100px; height:100px; border:4px solid #eef8ff; margin-bottom:4px;}就可以控制产品图片的大小. 9:如何管理首页flash播放器 回答:后台 -> flash播放器管理 -> 增加自定义,你就可以上传和控制图片的位置   10:如何修改首页"精品推荐"栏目的more小图片 回答:模板文件中library/recommend_best.lbi中,<div class="more"><a href="../search.php?intro=best"><img src="images/more.gif" /></a></div> 中more.gif图片换成你要的图片,或者将图片换成你需要的文字. 11:如何修改首页"新品上市"栏目的more小图片 回答:模板文件library/recommend_new.lbi中,<div class="more"><a href="../search.php?intro=new"><img src="images/more.gif" /></a></div> more.gif修改成你需要的图片或者是换成你需要的文字. 12:如何手动修改支付方式排列顺序 回答:数据库表中,找到payment表,pay_order字段就是用来控制顺序的,你如果想让A支付方式排在第一,那么你需要修改该字段的值稍微大一些。 13:如何去除ecshop产品详细页产品电击率 回答:模板文件中,打开goods.dwt,删除<strong>{$lang.goods_click_count}:</strong>{$goods.click_count} 14:首页模板在哪个文件,头部模板,底部模板个什么文件名称 回答:首页模板在为index.dwt, 头部模板在library/page_header.lbi,底部文件在library/page_footer.lbi 15:网站关闭了注册,如何修改“该网店暂停注册”字样 回答:languages\zh_cn\common.php 中$_LANG['shop_register_closed'] = '该网店暂停注册';修改该文字就可以了 16:收货人详细信息js弹出框的提示脚本在哪个文件 回答:languages\zh_cn\shopping_flow.php [比如 $_LANG['flow_js']['country_not_null'] = '请您选择收货人所在国家!';] 17:网站公告代码段在那里 回答: index.php文件中, $smarty->assign('shop_notice',     $_CFG['shop_notice']);       // 商店公告代码段控制公告 18:网站首页"精品推荐"显示数量在那里设置 ecshop中,为了让更多更丰富的购买信息显示在首页,可以根据自己所在行业特点,根据自己所在行业购买行为的分析,在ecshop首页设置热买促销新品的数量,让版面更加合理,让用户体验. 设置ecshop首页热买商品的数量. 模板管理 -> 设置模板 -> 热买商品 (修改其显示数量)修改下面的10为你需要的数量,这就是热买商品 设置ecshop首页新品的数量. 模板管理 -> 设置模板 -> 新品上架 (修改其显示数量)修改下面的10为你需要的数量,这就是新品上架 设置ecshop首页精品的数量. 模板管理 -> 设置模板 -> 精品推荐 (修改其显示数量)修改下面的10为你需要的数量,这就是精品推荐 19:网站首页"新品上市"显示数量在那里设置 20:如何修改产品的库存 回答:商品管理 -> 商品列表 -> 选中(库存),编辑就可以了. 21:如何修改ecshop表的前缀 回答:修改data/config.php下的$prefix    = "ecs_";将ecs_修改成你需要的前缀.其次,在数据库中,修改表名比如ecs_goods修改为"xxx_goods"; 22:如何去除首页flash下面的空白区域 首先.ecshop首页flash下面有两个空白的地方,第一个是用来显示促销产品的,右边是用来显示品牌的。 1:显示促销产品 后台 -> 商品管理 -> 商品列表 -> 编辑产品 -> 通用信息 -> 勾上促销价 -> 填写促销期限 -> 保存-> 更新缓存 前台flash下空白处就被填充了. 2:如何显示商品品牌列表 商品管理 -> 商品品牌 -> 增加品牌X -> 保存 增加该品牌X下的产品 商品管理 -> 增加新产品 -> 选择商品品牌 -> 保存 -> 更新缓存 23:如何修改ecshop导航栏目名称 回答:后台 -> 系统设置 -> 自定义导航栏 -> 编辑 -> 修改导航栏名称 24:如何将最新产品栏目显示在导航栏里面? 回答:后台 -> 系统设置 -> 自定义导航栏 -> 增加自定义导航,在链接的栏目中输入"search.php?intro=new" 25:如何更换ecshop模板 回答:比如新模板“test”,你将放在themes目录下,形成的路径为themes/test,然后在后台 -> 模板管理 -> 模板选择 ,起用你新加的模板就OK了。 26:ecshop产品相关的图片有那几种 回答:$goods_img        = "; // 初始化商品图片 $goods_thumb      = "; // 初始化商品缩略图 $original_img     = "; // 初始化原始图片 $old_original_img = "; // 初始化原始图片旧图 27:ecshop首页如何设置“新品”,“精品”,“热卖”商品 回答:参照http://www.chinab4c.com/html/shangchengchengxu/ecshopchangjianwenti/2009/0706/82.html 28:如何修改“支付方式”显示顺序 回答:打开ecs_payment表,如果你想让他显示在前面,你将设置pay_order值小一些,比如想让“支付宝”排第一,“快钱”排第二,你就可以设置支付宝pay_order=1,快钱pay_order=2 29:详细页面的积分 回答:详细页面的积分在模板<strong>{$lang.goods_give_integral}</strong><font class="f4">{$goods.give_integral} {$points_name}</font>中来控制的 30:如何修改产品缩略图大小 回答:后台 -> 系统设置 -> 网店设置 -> 显示设置 -> 缩略图宽度.,当然你也可以设置缩略图高度 31:如何设置ecshop货币格式和日期格式。 回答:后台 -> 系统设置 -> 网店设置 -> 显示设置 -> 货币格式(¥%s元)或者时间格式(Y-m-d H:i:s) 32:如何开取和关闭ecshop登陆验证码 回答:后台  -> 系统设置 -> 验证码管理  ,在这里你可以操作各种验证码,开启和关闭 33:如何修改个人帐户信息里面,出生年月的范围 […]

龙生   08 Dec 2010
View Details

ECSHOP数据库结构详细说明

— 表的结构 ecs_account_log CREATE TABLE IF NOT EXISTS ecs_account_log ( log_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号', user_id mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应', user_money decimal(10,2) NOT NULL COMMENT '用户该笔记录的余额', frozen_money decimal(10,2) NOT NULL COMMENT '被冻结的资金', rank_points mediumint(9) NOT NULL COMMENT '等级积分,跟消费积分是分开的', pay_points mediumint(9) NOT NULL COMMENT '消费积分,跟等级积分是分开的', change_time int(10) unsigned NOT NULL COMMENT '该笔操作发生的时间', change_desc varchar(255) NOT NULL COMMENT '该笔操作的备注,一般是,充值或者提现。也可是是管理员后台写的任何在备注', change_type tinyint(3) unsigned NOT NULL COMMENT '操作类型,0为充值,1为提现,2为管理员调节,99为其他类型', PRIMARY KEY (log_id), KEY user_id (user_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT=’用户帐号情况记录表,包括资金和积分等' AUTO_INCREMENT=42 ; — —————————————————— — 表的结构 ecs_ad […]

龙生   08 Dec 2010
View Details

解答“编译器错误信息: CS0016: 未能写入输出文件”的办法

解决: 初次碰到这个问题,试过很多方法,比如:停止索引服务,重装IIS,重装.Net Framework,删除Temporary ASP.NET Files目录再重赋权限,甚至重装系统,问题依旧;还有一点很奇怪,我重装系统前赋予了Temporary ASP.NET Files文件夹asp.net,network service和everyone用户的最大权限,但是我格式化重装系统后,Temporary ASP.NET Files目录的权限设置居然跟重装系统之前一样,不知是不是NTFS文件系统的问题,网上搜了一下,很多人碰到这个问题想到的都是给Temporary ASP.NET Files目录赋权限,我开始也是这样,最后在微软的网站搜到了这个问题的解决方法,其实很简单,只要在windows/temp权限设置里面把Network service(如果是win2000则是asp.net用户)的权限加上就行。 具体解决方法请参照:http://support.microsoft.com/default.aspx?scid=kb;en-us;825791

龙生   08 Dec 2010
View Details

c# 中的Equals()和==有什么区别?

using System;using System.Collections.Generic;using System.Text; namespace ConsoleApplication1{    class Person    {        private string name;         public string Name        {            get { return name; }            set { name = value; }        }         public Person(string name)        {            this.name = name;        }    }     class Program    {        static void Main(string[] args)        {            string a = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });            string b = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });            Console.WriteLine(a == b);            Console.WriteLine(a.Equals(b));             object g = a;            object h = b;            Console.WriteLine(g […]

龙生   30 Nov 2010
View Details