posts - 14,  comments - 14,  trackbacks - 0

     根据访问者的ip地址获得当地的天气情况,最简单的一种方法就是加一个iframe框架方法如下:

<iframe src="http://m.weather.com.cn/m/pn12/weather.htm" frameborder="0" width="200px" height="110px" scrolling="no"></iframe>

如果想得到比较详细的页面可以点击这个网址:http://weather.xixik.com/

这样方法虽然简单,但是有一个很大的缺点就是在IE浏览器下它的背景色是白色的(谷歌浏览器的背景色是透明的)如果你想将他显示在有背景色的条上会出现这种效果:

为了解决这种缺点可以使用第二种方法通过天气预报的WebService接口调用:

思想:1、先找确定访问者所在的地区。

                    string strResponse = GetPageData("http://www.123cha.com/");
                    Match match = Regex.Match(strResponse, @"来自:&nbsp;&nbsp;(.+)&nbsp;");
                    string[] addresses = match.Groups[1].Value.Replace("&nbsp;", " ").Split(' ');//获得Ip所在的城市
                    string address = "北京";
                    int n = 0;
                    if (addresses.Length >= 3)
                    {
                        n = 1;
                    }
                    address = addresses[n].Substring(0, addresses[n].Length - 1);

           2、添加WebService引用:

         添加webService的方法:

       一、添加Web引用(如果是2010添加服务引用)

                  

         二、在输入框中输入下面的网址:

       http://www.webxml.com.cn/WebServices/WeatherWebService.asmx  然后点击前往,记下引用名(引用名可以自己改写)

       

                 

                   最后代码:
                    Weather.WeatherWebService w = new Weather.WeatherWebService();
                    //把webservice当做一个类来操作 
                    string[] s = new string[23];//声明string数组存放返回结果 
                    string city = address;//获得文本框录入的查询城市 
                    s = w.getWeatherbyCityName(city);
                    //以文本框内容为变量实现方法getWeatherbyCityName 
                    if (s[8] == "")
                    {
                        //MessageBox.Show("暂时不支持您查询的城市");
                    }
                    else
                    {
                        string st = s[10];
                    }

 提升:

1、这样下来虽然效果实现了,但是加载速度很慢。为了不让它影响其它页面的加载速度,我将获取天气预报这块单独写了一个页面。然后在需要调用天气的预报的页面加了一个Frame框架。这样天气预报虽然加载慢但是却不会影响其他页面。

2、有好几个页面都用到这个天气预报,我没必要换一个页面就去用WebService去调用天气情况。针对这样情况,我采取只第一次加载的方法。然后将获得天气预报放到Cookie里这样其他页面再使用的时候我可以直接从cookie里调用省了很多时间。

具体代码如下:

  string content = "<table><tr id='temprature' runat='server'><td>" + dt + "&nbsp;" + week + "<td>" + address + ":&nbsp;" + s[10] + "</td></tr></table>";
                    HttpCookie wea = new HttpCookie("weather");
                    wea.Values["date"] = dt;
                    wea.Values["week"] = week;
                    wea.Values["address"] = address;
                    wea.Values["tian"] = s[10];
                    Response.Cookies.Add(wea);
                    temprature.InnerHtml = content;

 

if (Request.Cookies["weather"] != null)
                {
                    HttpCookie wea = Request.Cookies["weather"];
                    string dt = wea.Values["date"];
                    string week=wea.Values["week"];
                    string address=wea.Values["address"];
                    string tian=wea.Values["tian"];
                    string content = "<table><tr id='temprature' runat='server'><td>" + dt + "&nbsp;" + week + "<td>" + address + ":&nbsp;" + tian + "</td></tr></table>";
                    temprature.InnerHtml = content;

 

                }

这样速度加快了很多。

 

posted @ 2012-04-12 10:48 王洪洪 阅读(49) 评论(1) 编辑

做法:

一步:ppdf:http://www.persits.com/asppdf.exe(下载软件)   http://www.asppdf.com/download.html(获得注册码)

二步:安装记下安装目录,然后在安装目录下找到bin文件夹下的dll文件。复制到我们的项目中

三步:在项目中添加引用

4、代码如下:

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 ASPPDFLib;
using System.Reflection;

namespace test
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            testasppdf();
        }

        private void testasppdf()
        {
            IPdfManager objPdf = new PdfManager();

            IPdfDocument objDoc = objPdf.CreateDocument(Missing.Value);

            objDoc.ImportFromUrl("http://www.google.com", Missing.Value, Missing.Value, Missing.Value);

            String strFilename = objDoc.Save(Server.MapPath("1.pdf"), false);
        }

    }
}

参考博文:http://login.sina.com.cn/sso/login.php?useticket=0&returntype=META&service=blog&gateway=1&url=http://blog.sina.com.cn/s/blog_5f14c4220100cmin.html

从中感受:

在做的过程中我遇到了很多问题,包括怎么引用怎么解决注册码的问题很多很多。不过还好我没有放弃当我完成时。回头去读这篇参考博文发现它写的已经很详细了,只是我自己没有认真去读而已。再后来我自己装了一个虚拟机,装的过程中也遇到很多问题。曾想过放弃,但是最终坚持下来了。发现无论什么困难,只要你下定决心去做。方法会有的,你也会做出来的。相信你自己。一如最近学歌,我唱歌唱的不是很好。尤其是近来长大了,更是难学。但是我从来都没有放弃过学歌。在上周末跟姐姐唱歌时发现自己唱歌的能力进步很大。也发现了什么东西都真的没有什么难的。在一定环境下熏陶,加上你自己不放弃的努力。熟练了,也就会了。其实学什么都一样,在一定环境的熏陶下,熟练了你也就会了。

 

posted @ 2012-04-10 15:58 王洪洪 阅读(67) 评论(2) 编辑

只要是你想得出的效果,方法总是会有的。今天在用GridView时,需要它实现首行文字缩进。现在的效果是这样的:

我想要的效果是这样的:

      刚开始实现起来,我先用的是padding_left:10px;后来发现没有效果。再后来又用margin_left:10px;后来发现还是没有效果。再后来试了好多方法,曾经几度想放弃。

最后决定做最后的努力,就是一个一个属性值的找。功夫不负有心人,我看到了text-indent这个属性(设置文本缩进)于是我设置text-indent:8px;结果效果就真出来

了。当时很开心,看到经过自己的努力实现了自己想要的效果。那份开心是无法言语的。

  这件事让我们明白了一件事就是没有你做不到的效果,只要是你想要实现的效果并且坚持下来。什么效果都可以实现。


 

posted @ 2012-04-01 11:38 王洪洪 阅读(51) 评论(2) 编辑

近来找房子让我受了不少苦,不敢租太贵的。因为工资不高没有钱。在找房子的时候我明白了一件事就是我之所以受今天这份苦,只因我平时的懒惰不努力。倘若我平时足够努力,工资足够高。我何必受这份苦。2000的房子又算什么,如果你有足够的收入的话。只因自己平时不努力,太懒惰。让自己受了今日的苦楚。今天我告诉自己,如果你不想受苦。只有努力,只有努力才不会受苦。才可以活的有尊严。我会记下今天的日子跟感受的。。。

posted @ 2012-03-27 11:03 王洪洪 阅读(17) 评论(3) 编辑

我工作遇到这么一个情况:
算当前周的课程,有两种方法一种是用sql自带的函数datediff(select * from Table8 where datediff(wk,COLUMN8,getdate())=0)
另一种是在c#后台代码中直接写然后传参。我想问一下这两种方法哪一种更好,速度更快。


分析:
看你想把压力给谁
数据量不大的话,还是sql会好一些

 

感悟:

以前都是在后台去算,今天想了想,又查了查。发现在sql里就可以实现。看来我的sql基础实在是太薄弱了。这让我再一次意识到自己还有许多需要学习的。

 

下面程序前辈写的sql取当周时间的详细做法:

如何用sql获取当前周的7个时间   

 
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客--按日 
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客select sum(consume),day([date]) from consume_record where year([date]) = '2006' group by day([date]) 
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客--按周quarter 
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客select sum(consume),datename(week,[date]) from consume_record where year([date]) = '2006' group by datename(week,[date]) 
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客--按月 
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客select sum(consume),month([date]) from consume_record where year([date]) = '2006' group by month([date]) 
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客--按季 
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客select sum(consume),datename(quarter,[date]) from consume_record where year([date]) = '2006' group by datename(quarter,[date]) 
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客 
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客--指定日期你就看上面的例子变通下呀,无非就是一个聚合函数和Group by 
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客
如何用sql获取当前周的7个时间 - 转角空 - zhuanjiaokong的博客select [date],sum(consume) from consume_record where [date] between '2006-06-01' and '2006-07-10' group by [date]  

查询当前周:
select * from table
where datediff(wk,startdate,getdate())=0

查询下一周(也就是当前周的下一周):
select * from table
where datediff(wk,startdate,getdate())=-1

查询上一周(也就是当前周的上一周):
select * from table
where datediff(wk,startdate,getdate())=1
///////////////////////////////////////////

declare @today datetime
select @today = convert(varchar(10), getdate(), 20)
declare @weekday int 
select @weekday = datepart(weekday, @today)
declare @st datetime, @et datetime 
select @st = dateadd(dd, 1-@weekday, @today), @et = dateadd(dd, 7-@weekday, @today)
select * from table
where startdate between @st and @et
当然,这里的开始时间、结束时间跟你sql server的设置有关,即你的周是从周一开始还是从周日开始。

DECLARE @dt datetime
SET @dt=GETDATE()
DECLARE @number int
SET @number=3
--1.指定日期该年的第一天或最后一天
--A. 年的第一天
SELECT CONVERT(char(5),@dt,120)+'1-1'
--B. 年的最后一天
SELECT CONVERT(char(5),@dt,120)+'12-31'

--2.指定日期所在季度的第一天或最后一天
--A. 季度的第一天
SELECT CONVERT(datetime,
    CONVERT(char(8),
        DATEADD(Month,
            DATEPART(Quarter,@dt)*3-Month(@dt)-2,
            @dt),
        120)+'1')
--B. 季度的最后一天(CASE判断法)
SELECT CONVERT(datetime,
    CONVERT(char(8),
        DATEADD(Month,
            DATEPART(Quarter,@dt)*3-Month(@dt),
            @dt),
        120)
    +CASE WHEN DATEPART(Quarter,@dt) in(1,4)
        THEN '31'ELSE '30' END)
--C. 季度的最后一天(直接推算法)
SELECT DATEADD(Day,-1,
    CONVERT(char(8),
        DATEADD(Month,
            1+DATEPART(Quarter,@dt)*3-Month(@dt),
            @dt),
        120)+'1')

--3.指定日期所在月份的第一天或最后一天
--A. 月的第一天
SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')
--B. 月的最后一天
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')
--C. 月的最后一天(容易使用的错误方法)
SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))

--4.指定日期所在周的任意一天
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)

--5.指定日期所在周的任意星期几
--A.  星期天做为一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
--B.  星期一做为一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)
  
具体例子: 
SELECT CONVERT(varchar(100), GETDATE(), 0)union--: 05 16 2006 10:57AM 
SELECT CONVERT(varchar(100), GETDATE(), 1)union--: 05/16/06 
SELECT CONVERT(varchar(100), GETDATE(), 2)union--: 06.05.16 
SELECT CONVERT(varchar(100), GETDATE(), 3)union--: 16/05/06 
SELECT CONVERT(varchar(100), GETDATE(), 4)union--: 16.05.06 
SELECT CONVERT(varchar(100), GETDATE(), 5)union--: 16-05-06 
SELECT CONVERT(varchar(100), GETDATE(), 6)union--: 16 05 06 
SELECT CONVERT(varchar(100), GETDATE(), 7)union--: 05 16, 06 
SELECT CONVERT(varchar(100), GETDATE(), 8)union--: 10:57:46 
SELECT CONVERT(varchar(100), GETDATE(), 9)union--: 05 16 2006 10:57:46:827AM 
SELECT CONVERT(varchar(100), GETDATE(), 10)union--: 05-16-06 
SELECT CONVERT(varchar(100), GETDATE(), 11)union--: 06/05/16 
SELECT CONVERT(varchar(100), GETDATE(), 12)union--: 060516 
SELECT CONVERT(varchar(100), GETDATE(), 13)union--: 16 05 2006 10:57:46:937 
SELECT CONVERT(varchar(100), GETDATE(), 14)union--: 10:57:46:967 
SELECT CONVERT(varchar(100), GETDATE(), 20)union--: 2006-05-16 10:57:47 
SELECT CONVERT(varchar(100), GETDATE(), 21)union--: 2006-05-16 10:57:47.157 
SELECT CONVERT(varchar(100), GETDATE(), 22)union--: 05/16/06 10:57:47 AM 
SELECT CONVERT(varchar(100), GETDATE(), 23)union--: 2006-05-16 
SELECT CONVERT(varchar(100), GETDATE(), 24)union---: 10:57:47 
SELECT CONVERT(varchar(100), GETDATE(), 25)union--: 2006-05-16 10:57:47.250 
SELECT CONVERT(varchar(100), GETDATE(), 101)union--: 05/16/2006 
SELECT CONVERT(varchar(100), GETDATE(), 102)union--: 2006.05.16 
SELECT CONVERT(varchar(100), GETDATE(), 103)union--: 16/05/2006 
SELECT CONVERT(varchar(100), GETDATE(), 104)union---: 16.05.2006 
SELECT CONVERT(varchar(100), GETDATE(), 105)union--: 16-05-2006 
SELECT CONVERT(varchar(100), GETDATE(), 106)union--: 16 05 2006 
SELECT CONVERT(varchar(100), GETDATE(), 107)union---: 05 16, 2006 
SELECT CONVERT(varchar(100), GETDATE(), 108)union--: 10:57:49 
SELECT CONVERT(varchar(100), GETDATE(), 109)union--: 05 16 2006 10:57:49:437AM 
SELECT CONVERT(varchar(100), GETDATE(), 110)union--: 05-16-2006 
SELECT CONVERT(varchar(100), GETDATE(), 111)union--: 2006/05/16 
SELECT CONVERT(varchar(100), GETDATE(), 112)union--: 20060516 
SELECT CONVERT(varchar(100), GETDATE(), 113)union--: 16 05 2006 10:57:49:513 
SELECT CONVERT(varchar(100), GETDATE(), 114)union--: 10:57:49:547 
SELECT CONVERT(varchar(100), GETDATE(), 120)union--: 2006-05-16 10:57:49 
SELECT CONVERT(varchar(100), GETDATE(), 121)union--: 2006-05-16 10:57:49.700 
SELECT CONVERT(varchar(100), GETDATE(), 126)union--: 2006-05-16T10:57:49.827 
SELECT CONVERT(varchar(100), GETDATE(), 130)union--: 18 ???? ?????? 1427 10:57:49:907AM 
SELECT CONVERT(varchar(100), GETDATE(), 131)--: 18/04/1427 10:57:49:920AM 

 

posted @ 2012-03-20 16:15 王洪洪 阅读(99) 评论(1) 编辑
摘要: <area>标记主要用于图像地图,通过该标记可以在图像地图中设定作用区域(又称为热点),这样当用户的鼠标移到指定的作用区域点击时,会自动链接到预先设定好的页面。其基本语法结构如下: <area class=type id=Value href=url alt=text shape=area-shape coods=value>例子:<img border="0" height="68" alt="" src="main_03.jpg" usemap="#User" 阅读全文
posted @ 2012-03-16 15:53 王洪洪 阅读(61) 评论(0) 编辑
摘要: 记得自己初入程序这一行的时候就经常会听到前辈们说程序实现起来简单,但是重要的是代码优化。那时感觉代码优化是一个好神秘的东西,与我这个初入门的学生来说好深奥啊。今天在改朝阳区的项目的时候也遇到了程序优化的问题。现在遇到这么个问题: 教师类型选择: 学期选择: 教师类型有校内和外请两类。本想将所有的外请教室都列出来的,但是经理说外请老师很多,没有必要全部列出。如果全部列出的话,以后等我们的系统用的时间长了。查询起来会很慢。我只需要把上过课的老师列出来就好了(做程序再为以后考虑)。但是教师和课程是不在一个库里的。于是我首先想到的就是跨数据库left join查询。没错这样可以实现,但对数据...阅读全文
posted @ 2012-03-15 18:46 王洪洪 阅读(53) 评论(0) 编辑
摘要: 今天写了几行代码,都是从一个表里查数据。而我却查了三次数据库,代码例子如下:dalclass.GetLie("userName","Student","userId="+id);dalclass.GetLie("userClass","Student","userId="+id);dalclass.GetLie("userBank","Student","userId="+id);优化后的代码:string sql 阅读全文
posted @ 2012-03-14 11:49 王洪洪 阅读(50) 评论(2) 编辑
摘要: 今天刘总在检查我写的程序时,发现我犯了一个很低级的错误。今天写出来,告诫自己以后不要再犯同样的错误。。。在添加班次的时候,遇到这种锁死的情况。在添加班次的时候,我没有仔细看DAL里的代码。只是片面的看了添加那个方法,以至于犯了一个非常低级的错误。为了防止错误。可以采取一下两种方案:1、先别死锁,选择看看可以正确添加后再死锁。2、添加后直接查询数据库里的数据。添加或编辑的时候,一定要去库里查查。这是最直接也是最有效的方法。谨记以后不得再犯同样的错误。。。。。#region 初始化参数/// <summary>/// 初始化参数/// </summary>/// <r阅读全文
posted @ 2012-03-13 15:32 王洪洪 阅读(255) 评论(1) 编辑
摘要: 错误信息:“/”应用程序中的服务器错误。配置错误说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 分析器错误信息: 文件“MagicAjax”的格式无效。源错误: 行 45: </httpHandlers>行 46: <httpModules>行 47: <add name="MagicAjax" type="MagicAjax.MagicAjaxModule, MagicAjax"/>行 48: </httpModules>行 49: <!-- 阅读全文
posted @ 2012-03-13 10:42 王洪洪 阅读(125) 评论(1) 编辑
仅列出标题  下一页