posts - 61, comments - 11, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

2010年6月14日

最近正在学习Silverlight,个人觉得数据访问是最重要的一部分,现在搜集一些资料,方便查阅:

Silverlight与数据库的三种互操作:

http://www.silverlightchina.net/html/tips/2009/0826/153.html

Silverlight访问数据库之ADO.NET Entity Framework篇:

http://www.silverlightchina.net/html/tips/2009/1210/381.html

Silverlight访问数据库之Linq to SQL篇:

http://www.silverlightchina.net/html/tips/2009/1210/382.html

Silverlight客户端和WCF服务器端共享类库:

http://www.silverlightchina.net/html/tips/2009/1203/276.html

详解Silverlight 2中的独立存储(Isolated Storage):

http://www.silverlightchina.net/html/tips/2009/0831/162.html

SilverLight数据库访问示例:

http://silverlightchina.net/html/tips/2009/0723/88.html

posted @ 2010-06-14 10:56 gzlxm 阅读(1117) 评论(0) 编辑

public static string GetImgUrl(string HTMLStr)
{
string str = string.Empty;
//string sPattern = @"^<img\s+[^>]*>";
Regex r = new Regex(@"<img\s+[^>]*\s*src\s*=\s*([']?)(?<url>\S+)'?[^>]*>"//注意这里的(?<url>\S+)是按正则表达式中的组来处理的,下面的代码中用使用到,也可以更改成其它的HTML标签,以同样的方法获得内容!
RegexOptions.Compiled);
Match m 
= r.Match(HTMLStr.ToLower());
if (m.Success)
str 
= m.Result("${url}");
return str;
}
//返回多个路径的情况
public static StringBuilder MyGetImgUrl(string text)
{
StringBuilder str 
= new StringBuilder();
string pat = @"<img\s+[^>]*\s*src\s*=\s*([']?)(?<url>\S+)'?[^>]*>";

 

        Regex r 

= new Regex(pat, RegexOptions.Compiled);

 

        Match m 

= r.Match(text.ToLower());
//int matchCount = 0;
while (m.Success)
{
Group g 
= m.Groups[2];
str.Append(g).Append(
",");
= m.NextMatch();
}
return str;
}

posted @ 2010-06-14 10:55 gzlxm 阅读(577) 评论(0) 编辑

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;

 

 

/// <summary>
///AccessDBHelper 的摘要说明
/// </summary>
public class AccessDBHelper
{
    
private  string connectionString = "Provider=Microsoft.Jet.OleDb.4.0;Jet Oledb:Database Password=mingmei114;Data Source=";
    
    
public AccessDBHelper()
    {
        
    }
    
public AccessDBHelper(string AsaFilePath)
    {
        connectionString 
+= AsaFilePath;
    }
    
private  OleDbConnection connection;

 

 

public  OleDbConnection Connection
    {
        
get 
        {
            
if (connection == null)
            {
                connection 
= new OleDbConnection(connectionString);
                connection.Open();
            }
            
else if (connection.State == System.Data.ConnectionState.Closed)
            {
                connection.Open();
            }
            
else if (connection.State == System.Data.ConnectionState.Broken)
            {
                connection.Close();
                connection.Open();
            }
            
return connection;
        }
    }

 

 

 

public  int ExecuteCommand(string safeSql)
    {
        OleDbCommand cmd 
= new OleDbCommand(safeSql,Connection);
        
int result = cmd.ExecuteNonQuery();
        
return result;
    }

 

 

public  int ExecuteCommand(string sql, params SqlParameter[] values)
    {
        OleDbCommand cmd 
= new OleDbCommand(sql, Connection);
        cmd.Parameters.AddRange(values);
        
return cmd.ExecuteNonQuery();
    }

 

 

public  int GetScalar(string safeSql)
    {
        OleDbCommand cmd 
= new OleDbCommand(safeSql, Connection);
        
int result = Convert.ToInt32(cmd.ExecuteScalar());
        
return result;
    }

 

 

public  int GetScalar(string sql, SqlParameter[] values)
    {
        OleDbCommand cmd 
= new OleDbCommand(sql, Connection);
        cmd.Parameters.AddRange(values);
        
int result = Convert.ToInt32(cmd.ExecuteScalar());
        
return result;
    }

 

 

public  OleDbDataReader GetReader(string safeSql)
    {
        OleDbCommand cmd 
= new OleDbCommand(safeSql, Connection);
        OleDbDataReader reader 
= cmd.ExecuteReader();
        
return reader;
    }

 

 

public  OleDbDataReader GetReader(string sql, SqlParameter[] values)
    {
        OleDbCommand cmd 
= new OleDbCommand(sql, Connection);
        cmd.Parameters.AddRange(values);
        OleDbDataReader reader 
= cmd.ExecuteReader();
        
return reader;
    }

 

 

public  DataTable GetDataSet(string safeSql)
    {
        DataSet ds 
= new DataSet();
        OleDbCommand cmd 
= new OleDbCommand(safeSql, Connection);
        OleDbDataAdapter da 
= new OleDbDataAdapter(cmd);
        da.Fill(ds);
        
return ds.Tables[0];
    }

 

 

public  DataTable GetDataSet(string sql, SqlParameter[] values)
    {
        DataSet ds 
= new DataSet();
        OleDbCommand cmd 
= new OleDbCommand(sql, Connection);
        cmd.Parameters.AddRange(values);
        OleDbDataAdapter da 
= new OleDbDataAdapter(cmd);
        da.Fill(ds);
        
return ds.Tables[0];
    }

 


}

 

用法:

protected string BindDrName(string srk) //收款人 销售员
    {
        
if (Session["shopid"== null)
            Response.Redirect(
"MemberLogin.aspx");
        
string myshopDB = Session["shopid"].ToString();

 

 

string asafilepath = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/" + myshopDB + ".asa");
        AccessDBHelper acc 
= new AccessDBHelper(asafilepath);
        
string sql = "select * from dr where dr_hm='" + srk +"'";
        DataTable dt 
= acc.GetDataSet(sql);
        
string drname = "";
        
foreach (DataRow item in dt.Rows)
        {
            drname 
= item["dr_name"].ToString();
        }
        
return drname;
    }

posted @ 2010-06-14 10:54 gzlxm 阅读(147) 评论(0) 编辑

2010年6月13日

随着Internet技术的发展和跨平台需求的日益增加,Web Services的应用越来越广,我们不但需要通过Web Services传递字符串信息,而且需要传递二进制文件信息。下面,我们就分别介绍如何通过Web Services从服务器下载文件到客户端和从客户端通过Web Services上载文件到服务器。

一:通过Web Services显示和下载文件

我们这里建立的Web Services的名称为GetBinaryFile,提供两个公共方法:分别是GetImage()和GetImageType(),前者返回二进制文件字节数组,后者返回文件类型,其中,GetImage()方法有一个参数,用来在客户端选择要显示或下载的文件名字。这里我们所显示和下载的文件可以不在虚拟目录下,采用这个方法的好处是:可以根据权限对文件进行显示和下载控制,从下面的方法我们可以看出,实际的文件位置并没有在虚拟目录下,因此可以更好地对文件进行权限控制,这在对安全性有比较高的情况下特别有用。这个功能在以前的ASP程序中可以用Stream对象实现。为了方便读者进行测试,这里列出了全部的源代码,并在源代码里进行介绍和注释。

首先,建立GetBinaryFile.asmx文件:

我们可以在VS.NET里新建一个C#的aspxWebCS工程,然后“添加新项”,选择“Web服务”,并设定文件名为:GetBinaryFile.asmx,在“查看代码”中输入以下代码,即:GetBinaryFile.asmx.cs:

 using System;
 using System.Collections;
 using System.ComponentModel;
 using System.Data;
 using System.Diagnostics;
 using System.Web;
 using System.Web.UI;
 using System.Web.Services;
 using System.IO;

 namespace xml.sz.luohuedu.net.aspxWebCS
 {
  /// <summary>
  /// GetBinaryFile 的摘要说明。
  /// Web Services名称:GetBinaryFile
  /// 功能:返回服务器上的一个文件对象的二进制字节数组。
  /// </summary>
 [WebService(Namespace="http://xml.sz.luohuedu.net/",
  Description="在Web Services里利用.NET框架进行传递二进制文件。")]
  public class GetBinaryFile : System.Web.Services.WebService
  {

   #region Component Designer generated code
   //Web 服务设计器所必需的
   private IContainer components = null;

   /// <summary>
   /// 清理所有正在使用的资源。
   /// </summary>
   protected override void Dispose( bool disposing )
   {
    if(disposing && components != null)
    {
     components.Dispose();
    }
    base.Dispose(disposing);
   }

   #endregion

    public class Images: System.Web.Services.WebService
   {
    /// <summary>
    /// Web 服务提供的方法,返回给定文件的字节数组。
    /// </summary>
    [WebMethod(Description="Web 服务提供的方法,返回给定文件的字节数组")]
    public byte[] GetImage(string requestFileName)
    {
     ///得到服务器端的一个图片
     ///如果你自己测试,注意修改下面的实际物理路径
     if(requestFileName == null || requestFileName == "")
      return getBinaryFile("D:\\Picture.JPG");
     else
      return getBinaryFile("D:\\" + requestFileName);
    }

    /// <summary>
    /// getBinaryFile:返回所给文件路径的字节数组。
    /// </summary>
    /// <param name="filename"></param>
    /// <returns></returns>
    public byte[] getBinaryFile(string filename)
    {
     if(File.Exists(filename))
     {
      try
      {
       ///打开现有文件以进行读取。
       FileStream s = File.OpenRead(filename);
       return ConvertStreamToByteBuffer(s);
      }
      catch(Exception e)
      {
       return new byte[0];
      }
     }
     else
     {
      return new byte[0];
     }
    }
  /// <summary>
  /// ConvertStreamToByteBuffer:把给定的文件流转换为二进制字节数组。
  /// </summary>
  /// <param name="theStream"></param>
  /// <returns></returns>
    public byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream)
    {
     int b1;
     System.IO.MemoryStream tempStream = new System.IO.MemoryStream();
     while((b1=theStream.ReadByte())!=-1)
     {
      tempStream.WriteByte(((byte)b1));
     }
     return tempStream.ToArray();
    }
     [WebMethod(Description="Web 服务提供的方法,返回给定文件类型。")]
     public string GetImageType()
     {
      ///这里只是测试,您可以根据实际的文件类型进行动态输出
      return "image/jpg";
     }
   }
 }
 }
一旦我们创建了上面的asmx文件,进行编译后,我们就可以编写客户端的代码来进行调用这个Web Services了。

我们先“添加Web引用”,输入:http://localhost/aspxWebCS/GetBinaryFile.asmx。下面,我们编写显示文件的中间文件:GetBinaryFileShow.aspx,这里,我们只需要在后代码里编写代码即可,GetBinaryFileShow.aspx.cs文件内容如下:

 using System;
 using System.Collections;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Web;
 using System.Web.SessionState;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Web.UI.HtmlControls;
 using System.Web.Services;

 namespace aspxWebCS
 {
  /// <summary>
  /// GetBinaryFileShow 的摘要说明。
  /// </summary>
  public class GetBinaryFileShow : System.Web.UI.Page
  {

   private void Page_Load(object sender, System.EventArgs e)
   {
   // 在此处放置用户代码以初始化页面
     ///定义并初始化文件对象;
     xml.sz.luohuedu.net.aspxWebCS.GetBinaryFile.Images oImage;
     oImage = new xml.sz.luohuedu.net.aspxWebCS.GetBinaryFile.Images();
     ///得到二进制文件字节数组;
     byte[] image = oImage.GetImage("");
     ///转换为支持存储区为内存的流
     System.IO.MemoryStream memStream = new System.IO.MemoryStream(image);
     ///定义并实例化Bitmap对象
     Bitmap bm = new Bitmap(memStream);
     ///根据不同的条件进行输出或者下载;
     Response.Clear();
     ///如果请求字符串指定下载,就下载该文件;
     ///否则,就显示在浏览器中。
     if(Request.QueryString["Download"]=="1")
     {
      Response.Buffer = true;
      Response.ContentType = "application/octet-stream";
      ///这里下载输出的文件名字 ok.jpg 为例子,你实际中可以根据情况动态决定。
      Response.AddHeader("Content-Disposition","attachment;filename=ok.jpg");
     }
     else
      Response.ContentType = oImage.GetImageType();
     Response.BinaryWrite(image);
     Response.End();
   }

   #region Web Form Designer generated code
   override protected void OnInit(EventArgs e)
   {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
   }

   /// <summary>
   /// 设计器支持所需的方法 - 不要使用代码编辑器修改
   /// 此方法的内容。
   /// </summary>
   private void InitializeComponent()
   {
    this.Load += new System.EventHandler(this.Page_Load);

   }
   #endregion
  }
 }
最后,我们就编写最终的浏览页面:GetBinaryFile.aspx,这个文件很简单,只需要aspx文件即可,内容如下:

 <%@ Page language="c#" Codebehind="GetBinaryFile.aspx.cs" AutoEventWireup="false"
   Inherits="aspxWebCS.GetBinaryFile" %>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <HTML>
   <HEAD>
     <title>通过Web Services显示和下载文件</title>
     <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
     <meta name="CODE_LANGUAGE" Content="C#">
     <meta name="vs_defaultClientScript" content="JavaScript">
     <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
   </HEAD>
   <body MS_POSITIONING="GridLayout">
     <form id="GetBinaryFile" method="post" runat="server">
       <FONT face="宋体">
         <asp:HyperLink id="HyperLink1" NavigateUrl="GetBinaryFileShow.aspx?Download=1"
          runat="server">下载文件</asp:HyperLink>
         <br/>
         <!--下面是直接显示文件-->
         <asp:Image id="Image1" ImageUrl="GetBinaryFileShow.aspx" runat="server"></asp:Image>
       </FONT>
     </form>
   </body>
 </HTML>
二:通过Web Services上载文件

向服务器上载文件可能有许多种方法,在利用Web Services上载文件的方法中,下面的这个方法应该是最简单的了。我们仍象前面的例子那样,首先建立Upload.asmx文件,其Upload.asmx.cs内容如下,里面已经做了注释:

 using System;
 using System.Collections;
 using System.ComponentModel;
 using System.Data;
 using System.Diagnostics;
 using System.Web;
 using System.Web.Services;
 using System.IO;

 namespace xml.sz.luohuedu.net.aspxWebCS
 {
  /// <summary>
  /// Upload 的摘要说明。
  /// </summary>
  [WebService(Namespace="http://xml.sz.luohuedu.net/",
   Description="在Web Services里利用.NET框架进上载文件。")]
  public class Upload : System.Web.Services.WebService
  {
   public Upload()
   {
    //CODEGEN:该调用是 ASP.NET Web 服务设计器所必需的
    InitializeComponent();
   }

   #region Component Designer generated code

   //Web 服务设计器所必需的
   private IContainer components = null;

   /// <summary>
   /// 设计器支持所需的方法 - 不要使用代码编辑器修改
   /// 此方法的内容。
   /// </summary>
   private void InitializeComponent()
   {
   }

   /// <summary>
   /// 清理所有正在使用的资源。
   /// </summary>
   protected override void Dispose( bool disposing )
   {
    if(disposing && components != null)
    {
     components.Dispose();
    }
    base.Dispose(disposing);
   }

   #endregion

   [WebMethod(Description="Web 服务提供的方法,返回是否文件上载成功与否。")]
   public string UploadFile(byte[] fs,string FileName)
   {
    try
    {
     ///定义并实例化一个内存流,以存放提交上来的字节数组。
     MemoryStream m = new MemoryStream(fs);
     ///定义实际文件对象,保存上载的文件。
     FileStream f = new FileStream(Server.MapPath(".") + "\\"
      + FileName, FileMode.Create);
     ///把内内存里的数据写入物理文件
     m.WriteTo(f);
     m.Close();
     f.Close();
     f = null;
     m = null;
     return "文件已经上传成功。";
    }
    catch(Exception ex)
    {
     return ex.Message;
    }
   }
 }
 }
要上载文件,必须提供一个表单,来供用户进行文件的选择,下面我们就建立这样一个页面Upload.aspx,用来提供文件上载:

<%@ Page language="c#" Codebehind="Upload.aspx.cs" AutoEventWireup="false"
   Inherits="aspxWebCS.Upload" %>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <HTML>
   <HEAD>
     <title>通过Web Services上载文件</title>
     <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.0">
     <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
     <meta name="vs_defaultClientScript" content="JavaScript">
     <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
   </HEAD>
   <body MS_POSITIONING="GridLayout">
     <form id="Form1" method="post" runat="server"  enctype="multipart/form-data">
       <INPUT id="MyFile" type="file" runat="server">
       <br>
       <br>
       <asp:Button id="Button1" runat="server" Text="上载文件"></asp:Button>
     </form>
   </body>
 </HTML>
我们要进行处理的是在后代码里面,下面详细的介绍,Upload.aspx.cs:

 using System;
 using System.Collections;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Web;
 using System.Web.SessionState;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Web.UI.HtmlControls;
 using System.Web.Services;
 using System.IO;

 namespace aspxWebCS
 {
  /// <summary>
  /// Upload 的摘要说明。
  /// 利用该方法通过Web Services上载文件
  /// </summary>
  public class Upload : System.Web.UI.Page
  {
   protected System.Web.UI.HtmlControls.HtmlInputFile MyFile;
   protected System.Web.UI.WebControls.Button Button1;

   private void Page_Load(object sender, System.EventArgs e)
   {
    // 在此处放置用户代码以初始化页面
   }

   #region Web Form Designer generated code
   override protected void OnInit(EventArgs e)
   {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
   }

   /// <summary>
   /// 设计器支持所需的方法 - 不要使用代码编辑器修改
   /// 此方法的内容。
   /// </summary>
   private void InitializeComponent()
   {
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Load += new System.EventHandler(this.Page_Load);

   }
   #endregion

   private void Button1_Click(object sender, System.EventArgs e)
   {
    ///首先得到上载文件信息和文件流
    if(MyFile.PostedFile != null)
    {
     System.Web.HttpFileCollection oFiles;
     oFiles = System.Web.HttpContext.Current.Request.Files;
     if(oFiles.Count < 1)
     {
      Response.Write ("请选择文件。");
      Response.End();
     }

     string FilePath = oFiles[0].FileName;
     if(FilePath == "" || FilePath == null)
     {
      Response.Write ("请选择一个文件。");
      Response.End();
     }
     string FileName = FilePath.Substring(FilePath.LastIndexOf("\\")+1);
     try
     {
      ///处理上载的文件流信息。
      byte[] b = new byte[oFiles[0].ContentLength];
      System.IO.Stream fs;
      xml.sz.luohuedu.net.aspxWebCS.Upload o;
      o = new xml.sz.luohuedu.net.aspxWebCS.Upload();
      fs = (System.IO.Stream)oFiles[0].InputStream;
      fs.Read(b, 0, oFiles[0].ContentLength);
      ///调用Web Services的UploadFile方法进行上载文件。
      Response.Write(o.UploadFile(b, FileName));
      fs.Close();
     }
     catch(Exception ex)
     {
      Response.Write(ex.Message);
     }
    }
    else
    {
  Response.Write("请选择文件");
 }
   }
  }
 }
最后,需要注意的是:在保存文件时,您应该确保指定文件的完整路径(例如,"C:\MyFiles\Picture.jpg"),并确保为 ASP.NET 使用的帐户提供要存储文件的目录的写权限。上载大文件时,可使用 元素的 maxRequestLength 属性来增加文件大小的最大允许值,例如:

 <configuration>
    <system.web>
     <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
    </system.web>
 </configuration>
其中:maxRequestLength:指示 ASP.NET 支持的HTTP方式上载的最大字节数。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。executionTimeout:指示在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。在当文件超出指定的大小时,如果浏览器中会产生 DNS 错误或者出现服务不可得到的情况,也请修改以上的配置,把配置数加大。

另外,上载大文件时,还可能会收到以下错误信息:

 aspnet_wp.exe (PID: 1520) 被回收,因为内存消耗超过了 460 MB(可用 RAM 的百分之 60)。
如果遇到此错误信息,请增加应用程序的 Web.config 文件的 元素中 memoryLimit 属性的值。例如:

 <configuration>
    <system.web>
       <processModel memoryLimit="80"/>
    </system.web>
 </configuration>

posted @ 2010-06-13 10:24 gzlxm 阅读(100) 评论(0) 编辑

<asp:Repeater ID="rpList" runat="server" EnableViewState="false">
          
<HeaderTemplate>
          
<%
                
if (rpList.Items.Count == 0)
                {
                
%><div id="dNoData">No Data</div><%
                }
                
else { 
                
%>
            
<table>
                
<tr>
                
<th>XXX1</th>
                
<th>XXX2</th>
                
<th>XXX3</th>
                
<th>XXX4</th>
                
<th>XXX5</th>
                
<th>XXX6</th>
                
<th>XXX7</th>
              
</tr>
              
<%
                } 
%>
          
</HeaderTemplate>
          
<ItemTemplate>
            
<tr>
              
<td id="tdContainerNo" runat="server" ><%#Eval("ContainerNo")%></td>
              
<td><%#Eval("X1")%></td>
              
<td><%#Eval("X2")%></td>
              
<td><%#Eval("X3")%></td>
              
<td><%#Eval("X4")%></td>
              
<td><%#Eval("X5")%></td>
              
<td id="tdtotal" runat="server"><%#Eval("X6")%></td>
            
</tr>
          
</ItemTemplate>
          
<FooterTemplate>
            
</table>
          
</FooterTemplate>
     
</asp:Repeater>

posted @ 2010-06-13 10:21 gzlxm 阅读(20) 评论(0) 编辑

// 【文件】菜单中【退出】菜单项的处理方法

private void miExit_Click(object sender, System.EventArgs e)
{
    // 在退出程序之前,首先关闭已打开的子窗体
    Form[] children = this.MdiChildren; // 获取当前打开的子窗体
    for( int i=0;i<children.Length;i++)
        children[i].Close();        // 关闭子窗体
   this.Close();                      // 关闭主窗体并退出示例程序
}

posted @ 2010-06-13 10:20 gzlxm 阅读(28) 评论(0) 编辑

2010年6月11日

摘要: 网站转接支付宝解决方案大型网上购物系统除了能让会员选择货到付款结账方式外,还应该提供一些更方便快捷的网上支付方式。如果网上商店没有足够的实力提供会员直接在网站中建立现金账户的功能,就可以将订单信息转接到支付宝,让会员从支付宝付款。当然就算会员可以在网站上建立自己的现金账户,提供支付宝支付功能也不失为另一种方便快捷的支付方式,这可以给客户提供更多可选的支付方式。首先,网上购物系统必须与支付宝公司签订...阅读全文

posted @ 2010-06-11 16:48 gzlxm 阅读(797) 评论(0) 编辑

public void CheckLog(string Log)
            {
                if (File.Exists(LogFile))
                {
                    WriteLog(Log);
                }

                else
                {
                    CreateLog();
                    WriteLog(Log);
                }
            }

 

 

            private void CreateLog()
            {
                StreamWriter SW;
                SW = File.CreateText(LogFile);
                SW.WriteLine("Log created at: " +
                                     DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"));
                SW.Close();
            }

 

 

            private void WriteLog(string Log)
            {
                using (StreamWriter SW = File.AppendText(LogFile))
                {
                    SW.WriteLine(Log);
                    SW.Close();
                }
            }

posted @ 2010-06-11 12:04 gzlxm 阅读(29) 评论(0) 编辑

private void InputExcel(string pPath)

        {

            string conn = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + pPath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";

            OleDbConnection oleCon = new OleDbConnection(conn);

            oleCon.Open();

            string Sql = "select * from [Sheet1$]";

            OleDbDataAdapter mycommand = new OleDbDataAdapter(Sql, oleCon);

            DataSet ds = new DataSet();

            mycommand.Fill(ds, "[Sheet1$]");

            oleCon.Close();

            int count = ds.Tables["[Sheet1$]"].Rows.Count;

            for (int i = 0; i < count; i++)

            {

                string tUserID, tUserName, tDept, tEmail, tLeader, tAngent;

                tUserID = ds.Tables["[Sheet1$]"].Rows[i]["員工代號"].ToString().Trim();

                tUserName = ds.Tables["[Sheet1$]"].Rows[i]["員工姓名"].ToString().Trim();

                tDept = ds.Tables["[Sheet1$]"].Rows[i]["所屬部門代號"].ToString().Trim();

                tEmail= ds.Tables["[Sheet1$]"].Rows[i]["E-Mail Address"].ToString().Trim();

                tLeader = ds.Tables["[Sheet1$]"].Rows[i]["直属主管"].ToString().Trim();

                tAngent = ds.Tables["[Sheet1$]"].Rows[i]["代理人"].ToString().Trim();

                string excelsql = "insert into " + this.UserInfo.Company + "..[resak] (resak001, resak002, resak015,resak005,resak013,resak009) values ('" + tUserID + "','" + tUserName + "','" + tDept + "','" + tEmail + "','" + tLeader + "','" + tAngent + "')";

                DBCommand cmd = DscDBData.GetDataDBCommand();

                cmd.ExeNonQuery(excelsql);

            }

        }

posted @ 2010-06-11 11:55 gzlxm 阅读(846) 评论(0) 编辑

<?xml version="1.0"?>
<UserLogin>
  
<User>
    
<UserCode>001</UserCode>
    
<UserName>操作员1</UserName>
    
<UserPwd>111</UserPwd>
  
</User>
  
<User>
    
<UserCode>002</UserCode>
    
<UserName>操作员2</UserName>
    
<UserPwd>222</UserPwd>
  
</User>
</UserLogin>

 

 

 

类:

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 System.Xml;

/**//// <summary>
/// Xml文件的读写类
/// </summary>
///
public class XmlRW
{
    public XmlRW()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
   
    //WriteXml 完成对User的添加操作
    //FileName 当前xml文件的存放位置
    //UserCode 欲添加用户的编码
    //UserName 欲添加用户的姓名
    //UserPassword 欲添加用户的密码

    public void WriteXML(string FileName,string UserCode,string UserName,string UserPassword)
    {
   
        //初始化XML文档操作类
        XmlDocument myDoc = new XmlDocument();
        //加载XML文件
        myDoc.Load(FileName);

        //添加元素--UserCode
        XmlElement ele = myDoc.CreateElement("UserCode");
        XmlText text = myDoc.CreateTextNode(UserCode);

        //添加元素--UserName
        XmlElement ele1 = myDoc.CreateElement("UserName");
        XmlText text1 = myDoc.CreateTextNode(UserName);

        //添加元素--UserPwd
        XmlElement ele2 = myDoc.CreateElement("UserPwd");
        XmlText text2 = myDoc.CreateTextNode(UserPassword);

        //添加节点 User要对应我们xml文件中的节点名字
        XmlNode newElem = myDoc.CreateNode("element", "User", "");

        //在节点中添加元素
        newElem.AppendChild(ele);
        newElem.LastChild.AppendChild(text);
        newElem.AppendChild(ele1);
        newElem.LastChild.AppendChild(text1);
        newElem.AppendChild(ele2);
        newElem.LastChild.AppendChild(text2);

        //将节点添加到文档中
        XmlElement root = myDoc.DocumentElement;
        root.AppendChild(newElem);

        //保存
        myDoc.Save(FileName);
       
    }

    //DeleteNode 完成对User的添加操作
    //FileName 当前xml文件的存放位置
    //UserCode 欲添加用户的编码

    public void DeleteNode(string FileName, string UserCode)
    {
        //初始化XML文档操作类
        XmlDocument myDoc = new XmlDocument();
        //加载XML文件
        myDoc.Load(FileName);

        //搜索指定某列,一般是主键列
        XmlNodeList myNode = myDoc.SelectNodes("//UserCode");

        //判断是否有这个节点

        if (!(myNode == null))
        {
            //遍历节点,找到符合条件的元素

            foreach (XmlNode  xn in myNode)
            {
                if (xn.InnerXml  == UserCode)
                    //删除元素的父节点
                    xn.ParentNode.ParentNode.RemoveChild(xn.ParentNode);
            }
        }

        //保存
        myDoc.Save(FileName);

    }

    //WriteXml 完成对User的修改密码操作
    //FileName 当前xml文件的存放位置
    //UserCode 欲操作用户的编码
    //UserPassword 欲修改用户的密码

    public void UpdateXML(string FileName, string UserCode, string UserPassword)
    {

        //初始化XML文档操作类
        XmlDocument myDoc = new XmlDocument();
        //加载XML文件
        myDoc.Load(FileName);

        //搜索指定的节点
        System.Xml.XmlNodeList nodes = myDoc.SelectNodes("//User");

        if (nodes != null)
        {
            foreach (System.Xml.XmlNode xn in nodes)
            {
                if (xn.SelectSingleNode("UserCode").InnerText == UserCode)
                {
                    xn.SelectSingleNode("UserPwd").InnerText = UserPassword;
                }

            }
        }

        myDoc.Save(FileName);

    }

}


用法:

protected void Button1_Click(object sender, EventArgs e)
    {

        //添加引用,创建实例
        XmlRW myXml = new XmlRW();
        //调用我们实现定义好的方法,对应传入各个参数
        myXml.WriteXML(Server.MapPath("YtConfig.xml"), TextBox1.Text, TextBox2.Text, TextBox3.Text);

        Response.Write("Save OK!");

    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        XmlRW myXml = new XmlRW();
        myXml.DeleteNode(Server.MapPath("YtConfig.xml"), TextBox1.Text );

        Response.Write("Delete OK!");

    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        XmlRW myXml = new XmlRW();
        myXml.UpdateXML(Server.MapPath("YtConfig.xml"), TextBox1.Text, TextBox3.Text );

        Response.Write("Update OK!");

    }


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fishpowersoft/archive/2007/12/21/1957113.aspx

posted @ 2010-06-11 08:47 gzlxm 阅读(82) 评论(0) 编辑