我们知道在ASP.NET2.0中,系统会默认将我们创建的一些辅助类放到App_Code目录中,App_Code目录中存放的所有类文件应当使用相同的语言。如果类文件使用两种或多种语言编写,则必须创建特定语言的子目录,以包含用每种语言编写的类。一旦根据语言组织这些类文件,就要在web.config文件中为每个子目录添加一个设置:

<compilation>

<codeSubDirectories>

<add directoryName="VB" />

<add directoryName="CSharp" />

</codeSubDirectories>

</compilation>

这样配置后,VB子目录下放置VB.NET类文件,CSharp目录下放置C#类文件,其实目录名跟目录下面所放置的类文件是没有任何关系的,所以VB目录下也可以放置C#类文件,我们需要确保的只是每个子目录下只能放置一种语言产生的类文件即可。

posted @ 2008-08-31 20:53 stewen 阅读(126) | 评论 (0)编辑
谈到.NET程序当中的分页,可以说是有N种方法,我这里要谈的是一种很简单方法,但是却很实用,效率也很高,那就是使用SqlDataAdapter的Fill方法,说到Fill方法,大家都不陌生,我想大家最常用的应该是Fill(dataSet)了吧,这里要说的是Fill()的一个重载的方法。
public int Fill (
    DataSet dataSet,
    
int startRecord,
    
int maxRecords,
    
string srcTable
)

参数:

dataSet
要用记录和架构(如果必要)填充的 DataSet。

startRecord
从其开始的从零开始的记录号。

maxRecords
要检索的最大记录数。

srcTable
用于表映射的源表的名称,可以自己定义值。

返回值
已在 DataSet 中成功添加或刷新的行数。这不包括受不返回行的语句影响的行。

我们使用的Fill(dataSet)方法是将数据一次性的放到dataSet里,如果要查询的数据量很大的话,dataSet将占用很大的内存,势必影响系统的性能,如果我们一次只将一部分数据查询出来(如一页数据),想必一定会减轻服务器的压力,提高系统运行速度。
这里关键是startRecord和maxRecords两个参数的使用,maxRecords是每次我们要检索的最大记录数,这里我们可以把每页要显示的行数(PageSize)赋给它,而startRecord则是当前页的第一条记录所在数据库中的行号,知道了这两个参数的意思,我想分页已不难实现。

posted @ 2008-03-31 20:53 stewen 阅读(44) | 评论 (0)编辑
方法一:
使用MySQL推出的MySQL Connector/Net组件, 该组件是MySQL为ADO.NET访问MySQL数据库设计的.NET专用访问组件。完成该组件后,需要在项目中引用这个组件,也可以直接在配置文件的<assemblies>节点内添加下面的节点:

<add assembly="MySql.Data, Version=5.1.5.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>

之后在程序中引用命名空间MySql.Data.MySqlClient,即可开始进行连接MySQL数据库的操作了,示例如下:
 
 1protected void MySqlCon()
 2{
 3        //数据库连接字符串跟连接SQL SERVER没有区别
 4        string constr = "server=localhost;User Id=root;password=root;Database=test";
 5
 6        //下面使用MySql Connector/net提供的专用对象
 7        MySqlConnection mycon = new MySqlConnection(constr);
 8        mycon.Open();
 9        MySqlCommand mycmd = new MySqlCommand("select * from users", mycon);
10        MySqlDataReader myreader = mycmd.ExecuteReader();
11        while (myreader.Read())
12        {
13            if (myreader.HasRows)
14            {
15                Response.Write(myreader.GetString("email"+ "<br/>");
16            }

17        }

18        myreader.Close();
19        mycon.Close();
20
21}

方法二:
使用ODBC.NET。一般来说,ODBC.NET的DataProvider是标准的.NET框架(1.1及以上的版本)的一部分,所以会和后者一起自动安装好。一旦确认ODBC.NET安装完毕,你就需要下载用于MySQL的ODBC驱动程序:MySQL Connector/ODBC,目前最新版本是3.51。安装完毕后就可以使用ODBC.NET连接MySQL数据库了,首先需要在程序中引入System.Data.Odbc命名空间,具体的示例如下:
 1 public void Connect_Odbc()
 2    {
 3        //需要事先创建MySQL ODBC DSN.
 4        string odbcString = "DSN=MySQL;";
 5        
 6        //string odbcString = "DRIVER={MySQL ODBC 3.51 Driver};" +
 7        //                    "SERVER=localhost;" +
 8        //                    "Port=3306;" +  //连接本地数据库时可省略此项设置
 9        //                    "DATABASE=test;" +
10        //                    "UID=root;" +
11        //                    "PASSWORD=root;" +
12        //                    "OPTION=3";
13
14        OdbcConnection odbcConn = new OdbcConnection(odbcString);
15        odbcConn.Open();
16        OdbcCommand odbcCmd = new OdbcCommand("SELECT * FROM users", odbcConn);
17        OdbcDataReader myreader = odbcCmd.ExecuteReader();
18        while (myreader.Read())
19        {
20            if (myreader.HasRows)
21            {                
22                Response.Write(myreader.GetString(0+ "<br/>");
23            }

24        }

25        myreader.Close();
26        odbcConn.Close();
27    }


posted @ 2008-03-26 20:46 stewen 阅读(163) | 评论 (0)编辑
GridView是ASP.NET中最重要的数据呈现控件,其简单灵活的使用方法以及规范的数据呈现格式促成了其在Web开发中的大范围的应用,但其并不直接支持打印功能,在网页上打印的则会破坏GridView中原来规范的数据格式,如果能将GridView中的数据导出到Excel中再进行打印的话,则不仅规范的数据格式可以保存下来,而且也可以灵活地设置各种打印参数,经过上网找资料,终于找到一种可以直接将GridView中数据导出到Excel文件的方法,函数如下:

 

 1public void ExportToExcel(GridView gridView)
 2{        
 3        gridView.AllowPaging = false;//禁用分页,将数据全部导出到EXCEL
 4
 5        Response.Clear();
 6        Response.Buffer = true;
 7        Response.Charset = "GB2312";
 8        Response.AddHeader("Content-Disposition""attachment; filename=" 
 9    + System.Web.HttpUtility.UrlEncode("报表", System.Text.Encoding.UTF8) + ".xls");
10
11        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
12        Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 
13        this.EnableViewState = false;
14
15        System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN"true);
16        System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
17        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
18        
19    //这里需要重新绑定数据源
20        this.BindgridView(); //绑定数据源的函数
21
22        this.gridView.RenderControl(oHtmlTextWriter);
23        Response.Write(oStringWriter.ToString());
24        Response.End();
25}

 如上代码如果处理一般的GridView导出应该是没有问题的,但是如果GridView的AutoGenerateDeleteButton,AutoGenerateEditButton,AutoGenerateSelectButton有的设置为True了,或者GridView中有HyperLinkField类型的字段,那么就会抛出形如“类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常!

那么他的解决方案是:对WebForm窗体的VerifyRenderingInServerForm方法进行Override!
代码如下:

public override void VerifyRenderingInServerForm(Control control)
{
       
//OverRide 为了使导出成Excel可行!
}
posted @ 2008-03-26 11:31 stewen 阅读(188) | 评论 (0)编辑
     摘要: using System;using System.Collections;using System.Data;usingSystem.Data.OleDb;using System.Data.SqlClient;using System.IO;usingSystem.Text.RegularExpressions;namespace Backup{/// <summary>/// A... 阅读全文
posted @ 2007-05-26 18:44 stewen 阅读(212) | 评论 (0)编辑