从0开始做网站

第一步:做网站首先开始就要设置IIS吧,没这个做好之后都不知可不可以用了!
在XP上装个IIS 5.1,设好主目录后就用VS2005做个Default.apsx打算试一下可用否,但....出错了,果然万事起头难啊!
报"HTTP 500 内部服务错误",google后将IE的"显示友好 HTTP 错误信息"关闭,得到进一步的错误为"server application error",再次拿起法宝-google,得出要按以下顺序做:
1、检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动。
2、如果出错(刚好我的就是出错)
    在CMD下执行以下命令:
    cd %windir%/system32/inetsrv
    rundll32 wamreg.dll, CreateIISPackage
    regsvr32 asptxn.dll
    但我照做到第二步出现了“rundll32 wamreg.dll, CreateIISPackage  丢失条目”,无法了,再次google发现原来CreateIISPackage是区分大小写的(看来我的习惯不好啊,以后就要用C#写程序了,这可怎么办呢),而且wamreg.dll,后一定要用个空格--!。一翻折腾后,终于可以正常访问ASPX文件了,天啊这第一步难度就不少了。。。。

第二步:数据连接。
在网站中要使用数据库呢,而且Access及Sql都要用到,先连接个Access的吧

  1.          string  strConnection =  "Provider=MicroSoft.Jet.OleDb.4.0;" ;
  2.         strConnection += @ "Data Source=" +strFileName+@ ";User ID=admin;Password=;" ;
  3.         strConnection += @ "Jet OLEDB:Database Password=123" ;
  4.          string  queryString =  "select * from JxcCon" ;
  5.         OleDbConnection myObjConnection =  new  OleDbConnection(strConnection);
  6.         OleDbDataAdapter adapter =  new  OleDbDataAdapter(queryString, myObjConnection );

其中那个strFileName是在FileUpload.PostedFile.FileName中得到的!
上面的方法似乎不方便也不太安全,所以将那个连接密码放到web.config中

在web.config中加入:
  1.    < appSettings >
  2.      < add   key = "accessProviderConnectPWS"   value = "123" />
  3.    </ appSettings >
建立连接的语句改为:
  1.          string  strConnection =  string .Format( "Provider=MicroSoft.Jet.OleDb.4.0;Data Source={0};User ID=admin;Password=;Jet OLEDB:Database Password={1}"
  2.             , strFileName, ConfigurationSettings.AppSettings[ "accessProviderConnectPWS" ]);
  3.         OleDbConnection myObjConnection =  new  OleDbConnection(strConnection);
但生成时会提示:“System.Configuration.ConfigurationSettings.AppSettings”已过时:“This method is obsolete, it has been replaced by System.Configuration!System.Configuration.ConfigurationManager.AppSettings”的警告,大意就是说那个ConfigurationSettings已被ConfigurationManager所代替了,但可能由于那个是新加入的功能吧,如果直接用using System.Configuration后就使用ConfigurationManager是会报错的,一定要在解决方案中按右键-》添加引用-》“System.Configuration.dll”才会正常。

但如果不止一个页面要使用Access数据库连接的话,每次都要写上面的连接语句太烦锁了,做个连接的类吧。

  1. using  System;
  2. using  System.Collections.Generic;
  3. using  System.Data;
  4. using  System.Text;
  5. using  System.Data.OleDb;
  6. namespace  MyClassSum
  7. {
  8.      public   class  AccessConnect
  9.     {
  10.          public   static  OleDbConnection strConnection( string  strFileName)
  11.         {
  12.              string  strConnection =  "Provider=MicroSoft.Jet.OleDb.4.0;" ;
  13.             strConnection += @ "Data Source=" +strFileName+@ ";User ID=admin;Password=;" ;
  14.             strConnection += @ "Jet OLEDB:Database Password=123" ;
  15.              return   new  OleDbConnection(strConnection);
  16.         }
  17.     }
  18. }

上面的页面代码变为:

  1. OleDbConnection myObjConnection = MyClassSum.AccessConnect.strConnection(strFileName);

在web.config上的<appSettings>....</appSettings>里面的内容就不需要了。
另外,数据连接打开后要及时关闭,如:myObjConnection.Close();如果使用DataAdapter的话,在连接未打开前它会自动打开,使用完毕后会自动关闭,但如果连接本来就是开着的,那DataAdapter使用完连接后并不会自动关闭,其他的比如DataReader则要手动打开和关闭数据连接。

第三步:使用cookie
    建立

  1.             HttpCookie myCookie =  new  HttpCookie( "Jxc" );
  2.             myCookie[ "AccessDataLocate" ] = Page.Server.UrlEncode(fileName);
  3.             myCookie[ "CookieIdentity" ] = Page.Server.UrlEncode(cookieIdentity);
  4.             myCookie.Expires = DateTime.Today.AddYears(10);
  5.             Response.Cookies.Add(myCookie);

    为什么要使用Page.Server.UrlEecode转换一下?因为要防止fileName中包含中文而引起乱码,读出值的时候要亦要使用Page.Server.UrlDecode()转换过来。

    读取

  1. HttpCookie myCookies = Request.Cookies[ "Jxc" ];
  2. if  (myCookies !=  null )
  3. {
  4.   string  strAccessDataLocate=Page.Server.UrlDecode(Request.Cookies[ "Jxc" ][ "AccessDataLocate" ]);
  5.   string  strCookieIdeneity = Page.Server.UrlDecode(Request.Cookies[ "Jxc" ][ "CookieIdentity" ]);
  6.   string  strDisp =  "" ;
  7.   strDisp =  string .Format( "AccessDataLocate键的值为:{0},CookieIdentity键的值为:    {1}" , strAccessDataLocate, strCookieIdeneity);
  8.   Response.Write(strDisp);
  9. }
删除
  1.          if  (Request.Cookies[ "Jxc" ] !=  null )
  2.         {
  3.             HttpCookie myCookies =  new  HttpCookie( "Jxc" );
  4.             myCookies.Expires = DateTime.Now.AddMilliseconds(-1);
  5.             //或my Cookie.Expires = DateTime.MinValue                           
  6.             Response.Cookies.Add(myCookies);
  7.         }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值