显示标签为“C#”的博文。显示所有博文
显示标签为“C#”的博文。显示所有博文

2014年6月22日星期日

UltraWebGrid导出Excel的方法

这段时间需要用C#做个页面,把网格中查询出来的数据导出到Excel中。在网上找了一大堆C#导出Excel的代码,试来试去都不可用。好多代码是针对.net 2.0或者3.0的,无奈我的程序用的是.net 1.0开发的,造成好多函数都不能用。之后就转变思想,寻找“UltraWebGrid导出Excel的方法”,在CSDN中找到一批流传甚广的文本,可是我人肉测试的结果还是不能用。就在我近乎绝望的时候,我发现原来UltraWebGrid自带导出Excel的控件。使用也很简单,前端注册,后台调用就行了。以下是一个简单的实例。

PS:UltraWebGrid的中文文档真的太少了,使用起来很不方便。

modle.aspx的代码如下,第1行注册控件,第2行添加一个导出按钮,第3行添加UltraWebGridExcelExporter控件。


<%@ Register Assembly="Infragistics.WebUI.UltraWebGrid.ExcelExport.v5.1, Version=5.1.20051.37, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" Namespace="Infragistics.WebUI.UltraWebGrid.ExcelExport" TagPrefix="igxl" %>




modle.aspx.cs代码如下,定义UltraWebGridExcelExporter,然后调用Export函数。



protected Infragistics.WebUI.UltraWebGrid.ExcelExport.UltraWebGridExcelExporter UltraWebGridExcelExporter1;
private void Button2_Click(object sender, System.EventArgs e){
UltraWebGridExcelExporter1.Export(this.UltraWebGrid1);
}

2014年6月21日星期六

UltraWebGrid导出Excel的方法

这段时间需要用C#做个页面,把网格中查询出来的数据导出到Excel中。在网上找了一大堆C#导出Excel的代码,试来试去都不可用。好多代码是针对.net 2.0或者3.0的,无奈我的程序用的是.net 1.0开发的,造成好多函数都不能用。之后就转变思想,寻找“UltraWebGrid导出Excel的方法”,在CSDN中找到一批流传甚广的文本,可是我人肉测试的结果还是不能用。就在我近乎绝望的时候,我发现原来UltraWebGrid自带导出Excel的控件。使用也很简单,前端注册,后台调用就行了。以下是一个简单的实例。

PS:UltraWebGrid的中文文档真的太少了,使用起来很不方便。

modle.aspx的代码如下,第1行注册控件,第2行添加一个导出按钮,第3行添加UltraWebGridExcelExporter控件。

<%@ Register Assembly="Infragistics.WebUI.UltraWebGrid.ExcelExport.v5.1, Version=5.1.20051.37, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" Namespace="Infragistics.WebUI.UltraWebGrid.ExcelExport" TagPrefix="igxl" %><asp:button id="Button2" runat="server" Text="导出" Width="64px"></asp:button><igxl:UltraWebGridExcelExporter ID="UltraWebGridExcelExporter1" runat="server" DownloadName="Workbook1.xls"></igxl:UltraWebGridExcelExporter>

modle.aspx.cs代码如下,定义UltraWebGridExcelExporter,然后调用Export函数。

protected Infragistics.WebUI.UltraWebGrid.ExcelExport.UltraWebGridExcelExporter UltraWebGridExcelExporter1;private void Button2_Click(object sender, System.EventArgs e){        UltraWebGridExcelExporter1.Export(this.UltraWebGrid1);                    }

2014年5月14日星期三

C#将文件复制到指定文件夹,并按日期归档

下面是在C#中将文件复制(剪切是先复制再删除)到指定的路径,并按日期归档的一个简单实例。值得注意的2点是:

1)文件的路径是关键,程序中使用双斜杠\\

2)文件和文件夹的区别


private void DoWork()
{
String dir="D:\\ABC"
//创建备份文件夹,按时间命名
String bakDir = dir + "\\bak\\" + DateTime.Now.ToString("yyyy-MM-dd");

if (Directory.Exists(bakDir) == false){
Directory.CreateDirectory(bakDir);
}
string[] files = Directory.GetFiles(dir);
if (files.Length != 0) {
foreach (string file in files) {
FileInfo fileinfo = new FileInfo(file);
try{
string fileName = file.Replace(dir, "");
//备份文件
File.Copy(file,Path.Combine(bakDir,fileName));
File.Delete(file);
}
}
}

C#将文件复制到指定文件夹,并按日期归档

下面是在C#中将文件复制(剪切是先复制再删除)到指定的路径,并按日期归档的一个简单实例。值得注意的2点是:

1)文件的路径是关键,程序中使用双斜杠\\

2)文件和文件夹的区别

private void DoWork(){      String dir="D:\\ABC"      //创建备份文件夹,按时间命名          String bakDir = dir + "\\bak\\" + DateTime.Now.ToString("yyyy-MM-dd");     if (Directory.Exists(bakDir) == false){              Directory.CreateDirectory(bakDir);     }     string[] files = Directory.GetFiles(dir);     if (files.Length != 0) {           foreach (string file in files) {           FileInfo fileinfo = new FileInfo(file);           try{               string fileName = file.Replace(dir, "");               //备份文件               File.Copy(file,Path.Combine(bakDir,fileName));               File.Delete(file);           }         }}

2013年10月21日星期一

C#在App.config中自定义节点的设置与读取实例

我们往往需要在App.config中自定义一些节来满足实际需要,而不依赖于App.config的appSettings,下面通过一个简单的实例来说明自定义配置节点的设置与读取(该实例抽取于FTP上传程序)。

在App.config配置文件中使用自定义配置,需要在configSections中添加一个section元素,并指定此section元素对应的名字和类型,然后再在configuration根节点下面添加此自定义配置节。

1、我们在App.config中添加如下的自定义节点(配置了一组相同类型的节点,用于上传文件目录,FTP服务器地址及登陆信息):




D:\ABC\1\
D:\ABC\
ftp://10.1.1.2
user
1234


D:\ABC\2\
D:\ABC\
ftp://10.1.1.3
user
1234


D:\ABC\3\
D:\ABC\
ftp://10.1.1.4
user
1234



2、然后在App.config的configSections中添加section元素(section 元素将配置节处理程序与配置元素或节关联)(其中name为自定义节点的名称,type为自定义节点解析文件的命名空间和自定义节处理程序的类名)





3、创建自定义配置节处理程序,节处理程序用来解释并处理 Web.config 文件特定部分中 XML 配置元素中定义的设置,并根据配置设置返回适当的配置对象。使用该配置对象,以对自定义配置元素进行读取和写入。新建名为DZConfig.cs的文件,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Configuration;
using System.Collections;


namespace FTP_SendServices
{
public class DZConfigSection
{
DZConfigSection() { }
#region 属性定义

private string _FilePath;
private string _LogPath;
private string _uploadUrl;
private string _userName;
private string _passWord;

public string FilePath
{
get { return _FilePath; }
set { _FilePath = value; }
}

public string LogPath
{
get { return _LogPath; }
set { _LogPath = value; }
}

public string uploadUrl
{
get { return _uploadUrl; }
set { _uploadUrl = value; }
}


public string userName
{
get { return _userName; }
set { _userName = value; }
}

public string passWord
{
get { return _passWord; }
set { _passWord = value; }
}



#endregion


public DZConfigSection(XmlNode AddressConfig)
{
XmlElement c = (XmlElement)AddressConfig;
_FilePath = c.SelectSingleNode("FilePath").InnerText;
_LogPath = c.SelectSingleNode("LogPath").InnerText;
_uploadUrl = c.SelectSingleNode("uploadUrl").InnerText;
_userName = c.SelectSingleNode("userName").InnerText;
_passWord = c.SelectSingleNode("passWord").InnerText;

}

}

//创建一个实现 System.Configuration.IConfigurationSectionHandler 接口的公共类。
public class ConvertCfgSectionHandler : IConfigurationSectionHandler
{
public ConvertCfgSectionHandler() { }
public object Create(object parent, object configContext, XmlNode section)
{
//添加您自己的代码,以执行所需的配置工作。
List _list = new List();
foreach (XmlNode AddressConfig in section.SelectNodes("//AddressConfig"))
{
DZConfigSection _DZConfig = new DZConfigSection(AddressConfig);
_list.Add(_DZConfig);
}
return _list;

}


}

public class DZConfig
{

public static List GetConfigList()
{

return (List)ConfigurationSettings.GetConfig("DZConfig");
}
}
}

4、在程序中使用配置节点信息。下面就是节点的读取,遍历整个自定义节点的数据:

List _ConfigList = DZConfig.GetConfigList();
foreach (DZConfigSection Config in _ConfigList)
{
LogPath =Config.LogPath + "log" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
FileHelper.WriteFile(LogPath, DateTime.Now.ToString() + "   数据发送功能启动!");
string dir = Config.FilePath;
string uploadUrl =Config.uploadUrl;
string userName = Config.userName;
string passWord = Config.passWord;
string[] files = Directory.GetFiles(dir);
}

C#在App.config中自定义节点的设置与读取实例

我们往往需要在App.config中自定义一些节来满足实际需要,而不依赖于App.config的appSettings,下面通过一个简单的实例来说明自定义配置节点的设置与读取(该实例抽取于FTP上传程序)。

在App.config配置文件中使用自定义配置,需要在configSections中添加一个section元素,并指定此section元素对应的名字和类型,然后再在configuration根节点下面添加此自定义配置节。

1、我们在App.config中添加如下的自定义节点(配置了一组相同类型的节点,用于上传文件目录,FTP服务器地址及登陆信息):

<!--自定义节点:上传文件目录,FTP服务器地址及登陆信息-->  <DZConfig>    <AddressConfig>      <FilePath>D:\ABC\1\</FilePath>      <LogPath>D:\ABC\</LogPath>      <uploadUrl>ftp://10.1.1.2</uploadUrl>      <userName>user</userName>      <passWord>1234</passWord>    </AddressConfig>    <AddressConfig>      <FilePath>D:\ABC\2\</FilePath>      <LogPath>D:\ABC\</LogPath>      <uploadUrl>ftp://10.1.1.3</uploadUrl>      <userName>user</userName>      <passWord>1234</passWord>    </AddressConfig>    <AddressConfig>      <FilePath>D:\ABC\3\</FilePath>      <LogPath>D:\ABC\</LogPath>      <uploadUrl>ftp://10.1.1.4</uploadUrl>      <userName>user</userName>      <passWord>1234</passWord>    </AddressConfig>  </DZConfig>

2、然后在App.config的configSections中添加section元素(section 元素将配置节处理程序与配置元素或节关联)(其中name为自定义节点的名称,type为自定义节点解析文件的命名空间和自定义节处理程序的类名)

<configSections>        <section name="DZConfig" type="FTP_SendServices.ConvertCfgSectionHandler,FTP_SendServices"/></configSections>

3、创建自定义配置节处理程序,节处理程序用来解释并处理 Web.config 文件特定部分中 XML 配置元素中定义的设置,并根据配置设置返回适当的配置对象。使用该配置对象,以对自定义配置元素进行读取和写入。新建名为DZConfig.cs的文件,代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml;using System.Configuration;using System.Collections;namespace FTP_SendServices{    public class DZConfigSection    {        DZConfigSection() { }        #region 属性定义        private string _FilePath;        private string _LogPath;        private string _uploadUrl;        private string _userName;        private string _passWord;        public string FilePath        {            get { return _FilePath; }            set { _FilePath = value; }        }        public string LogPath        {            get { return _LogPath; }            set { _LogPath = value; }        }        public string uploadUrl        {            get { return _uploadUrl; }            set { _uploadUrl = value; }        }        public string userName        {            get { return _userName; }            set { _userName = value; }        }        public string passWord        {            get { return _passWord; }            set { _passWord = value; }        }        #endregion                public DZConfigSection(XmlNode AddressConfig)        {            XmlElement c = (XmlElement)AddressConfig;            _FilePath = c.SelectSingleNode("FilePath").InnerText;            _LogPath = c.SelectSingleNode("LogPath").InnerText;            _uploadUrl = c.SelectSingleNode("uploadUrl").InnerText;            _userName = c.SelectSingleNode("userName").InnerText;            _passWord = c.SelectSingleNode("passWord").InnerText;                             }    }        //创建一个实现 System.Configuration.IConfigurationSectionHandler 接口的公共类。    public class ConvertCfgSectionHandler : IConfigurationSectionHandler    {        public ConvertCfgSectionHandler() { }        public object Create(object parent, object configContext, XmlNode section)        {	    //添加您自己的代码,以执行所需的配置工作。            List _list = new List();            foreach (XmlNode AddressConfig in section.SelectNodes("//AddressConfig"))            {                DZConfigSection _DZConfig = new DZConfigSection(AddressConfig);                _list.Add(_DZConfig);            }            return _list;                                }            }    public class DZConfig    {             public static List GetConfigList()        {                       return (List)ConfigurationSettings.GetConfig("DZConfig");        }    }}

4、在程序中使用配置节点信息。下面就是节点的读取,遍历整个自定义节点的数据:

List _ConfigList = DZConfig.GetConfigList();foreach (DZConfigSection Config in _ConfigList){    LogPath  =Config.LogPath + "log" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";    FileHelper.WriteFile(LogPath, DateTime.Now.ToString() + "   数据发送功能启动!");    string dir = Config.FilePath;    string uploadUrl =Config.uploadUrl;    string userName = Config.userName;    string passWord = Config.passWord;     string[] files = Directory.GetFiles(dir);}

2013年10月4日星期五

C#验证控件validator的简单实例

ASP.NET为开发人员提供了一套简单实用的服务器控件来验证用户输入的信息是否有效。这些控件的主要属性有id(控件的唯一id)、ControlToValidate(被验证的控件的id)、ErrorMessage(当验证失败时,在控件中显示的文本)、runat(规定该控件是一个服务器控件。必须设置为 "server")。

1、RequiredFieldValidator:验证一个必填字段,如果这个字段没填,那么将不能提交信息。

下例为文本框输入是否为空的验证,输入内容为空时报错。代码如下:


*


2、CompareValidator:比较验证。比较两个字段值是否相等,如密码和确认密码两个字段是否相等;比较一个字段与一个具体的值。

下例为两个文本框的输入密码验证,如果两个文本框输入内容不一致时报错。代码如下:






下例为文本框输入内容值验证,如果输入内容和某值相等时报错。代码如下:





3、RangeValidator:范围验证。验证一个字段是否在某个范围中。

下例为文本框输入的内容在最大值和最小值之间,如果超过最大或最小值时报错。代码如下:





4、RegularExpressionValidator:正则表达式验证。它根据正则表达式来验证用户输入字段的格式是否合法,如电子邮件、身份证、电话号码等。

下例为文本框输入内容符合ValidationExpression中正则表达式的要求,如果不符合要求时报错。代码如下:



C#验证控件validator的简单实例

ASP.NET为开发人员提供了一套简单实用的服务器控件来验证用户输入的信息是否有效。这些控件的主要属性有id(控件的唯一id)、ControlToValidate(被验证的控件的id)、ErrorMessage(当验证失败时,在控件中显示的文本)、runat(规定该控件是一个服务器控件。必须设置为 “server”)。

1、RequiredFieldValidator:验证一个必填字段,如果这个字段没填,那么将不能提交信息。

下例为文本框输入是否为空的验证,输入内容为空时报错。代码如下:

<ASP:TextBox id="txtName" RunAt="Server"/><ASP:RequiredFieldValidator id=" RequiredFieldValidator1" Runat="Server"  ControlToValidate="txtName"  ErrorMessage="用户名不能为空"  ForeColor="red">*</ASP:RequiredFieldValidator>

2、CompareValidator:比较验证。比较两个字段值是否相等,如密码和确认密码两个字段是否相等;比较一个字段与一个具体的值。

下例为两个文本框的输入密码验证,如果两个文本框输入内容不一致时报错。代码如下:

<asp:TextBox ID="txtPWD1" runat="server" TextMode="Password"></asp:TextBox><asp:TextBox ID="txtPWD2" runat="server" TextMode="Password"></asp:TextBox><asp:CompareValidator ID="CompareValidator1" ForeColor="Red" runat="server" ErrorMessage="两次密码输入不一致" ControlToValidate="txtPWD1" ControlToCompare="txtPWD2"    type="String">

下例为文本框输入内容值验证,如果输入内容和某值相等时报错。代码如下:

<ASP:TextBox id="txtName" RunAt="Server"/><ASP:CompareValidator id=" CompareValidator1" Runat="Server"  ControlToValidate="txtName" ControlToCompare="123" ErrorMessage="该用户已注册"  Operator="NotEqual"  type="String"  ForeColor="red"></ASP:CompareValidator>

3、RangeValidator:范围验证。验证一个字段是否在某个范围中。

下例为文本框输入的内容在最大值和最小值之间,如果超过最大或最小值时报错。代码如下:

<asp:TextBox ID="num_id" runat="server" BackColor="White"></asp:TextBox><asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="编号为1~1000之间" ControlToValidate="num_id" MaximumValue="1000" MinimumValue="1" Type="Integer"></asp:RangeValidator>

4、RegularExpressionValidator:正则表达式验证。它根据正则表达式来验证用户输入字段的格式是否合法,如电子邮件、身份证、电话号码等。

下例为文本框输入内容符合ValidationExpression中正则表达式的要求,如果不符合要求时报错。代码如下:

<asp:TextBox ID="txtMail" runat="server" BackColor="White"></asp:TextBox><asp:RegularExpressionValidator ID="RegularExpressionValidator1" ForeColor="Red" runat="server" ErrorMessage="请输入正确的邮箱" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="txtMail"></asp:RegularExpressionValidator>