asp.net编程大全

1.提取字段列表
/*
<%@ Import Namespace="System.Data.SqlClient"%>
*/
//<%
using(SqlConnection cn=new SqlConnection("Data Source=localhost;Initial Catalog=pubs;UserID=sa;Password=")) {
SqlCommand cmd=new SqlCommand("Select * from authors");
cn.Open();
SqlDataReader dr=cmd.ExecuteReader();
while(dr.Read()) {
Response.Write(dr("au_fname"));
}
dr.Close();
cn.Close();
}
//%>

2.返回数据集函数
/*
<%@ Import Namespace="System.Data.SqlClient"%>
*/
//<%
public DataSet GetData()
{
using(SqlConnection cn=new SqlConnection("Data Source=localhost;Initial Catalog=pubs;UserID=sa;Password="))
{
cn.Open();
SqlDataAdapter da=new SqlDataAdapter("Select * from authors",cn);
DataSet ds=new DataSet();
da.Fill(ds,"Authors");
cn.Close();
return ds;
}
return null;
}
//%>

3.从XML文件中读取数据
/*
<%@ Import Namespace="System.Data.SqlClient"%>
*/
//<%
DataSet dst=new DataSet();
dst.ReadXml(MapPath(%%1)); //"*.xml"
DataGrid1.DataSource=dst;
DataGrid1.DataBind();
//%>

4.把数据写入XML文件
/*
<%@ Import Namespace="System.Data.SqlClient"%>
*/
//<%
using(SqlConnection conn=new SqlConnection("Data Source=localhost;Initial Catalog=pubs;UserID=sa;Password="))
{
SqlDataAdapter da=new SqlDataAdapter("Select * from authors",conn);
DataSet ds=new DataSet();
da.Fill(ds,"Authors");
ds.WriteXml(MapPath(%%1)); //"*.xml"
cn.Close();
}
//%>

5.遍历XML文档
/*
<%@ Import Namespace="System.Xml"%>
*/
//<%
XmlDocument objParser=new XmlDocument();
Object objRoot,objNode;
objParser.Load(Server.MapPath(%%1)); //"*.xml"
objRoot=objParser.documentElement();
for(int i=0;i<objRoot.childNodes.count;i++)
{
objNode=objRoot.childNodes[i];
Response.Write("<tr><td>");
Response.Write(objNode.getAttribute("name") & "</td><td align='center'>");
Response.Write(objNode.childNodes.count)
}
}
//%>

6.搜索XML元素
/*
<%@ Import Namespace="System.Xml"%>
*/
//<%
XmlDocument objDocument=new XmlDocument();
XmlElement objRoot;
XmlNodeList objNodeList;
objDocument.Load(Server.MapPath(%%1)); //"*.xml"
objRoot=objDocument.DocumentElement;
objNodeList=objRoot.SelectNodes("//ablum[@artist='" & txtArtist.Text & "']");
if(objNodeList.Count==0)
{
lblMessage.Text="No records"
}
else
{
DataSet objDataSet=new DataSet();
DataTable objDataTable;
DataColumn objColumn;
DataRow objRow;
objDataTable=objDataSet.Tables.Add();
objColumn=new DataColumn("album");
objDataTable.Columns.Add(objColumn);
objColumn=new DataColumn("year");
objDataTable.Columns.Add(objColumn);
foreach(XmlNode objNode in objNodeList)
{
objRow=objDataTable.NewRow();
objRow["album"]=objNode.Attributes["name"].Value;
objRow["year"]=objNode.Attributes["releaseDate"].Value;
objDataTable.Rows.Add(objRow);
}
}
DataGrid1.DataSource=objDataSet;
DataGrid1.DataBind();
//%>

7.下载文件
/*
<%@ Import Namespace="System.IO"%>
*/
string FullFileName=%%1;
             FileInfo DownloadFile = new FileInfo(FullFileName); //设置要下载的文件
             Response.Clear(); //清除缓冲区流中的所有内容输出
             Response.ClearHeaders(); //清除缓冲区流中的所有头
             Response.Buffer = false; //设置缓冲输出为false
            //设置输出流的 HTTP MIME 类型为application/octet-stream
             Response.ContentType = "application/octet-stream";//将 HTTP 头添加到输出流
             Response.AppendHeader("Content-Disposition","attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.UTF8));
                                                                   
             Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());//将指定的文件直接写入 HTTP 内容输出流。

             Response.WriteFile(DownloadFile.FullName);
             Response.Flush(); //向客户端发送当前所有缓冲的输出
             Response.End(); //将当前所有缓冲的输出发送到客户端

8.调用存储过程查询
/*
<%@ Import Namespace="System.Data.SqlClient"%>
<%@ Import Namespace="System.Data"%>
*/
string myConnectString="Data Source=localhost;Initial Catalog=pubs;UserID=sa;Password=";
using(SqlConnection myconn=new SqlConnection(myConnectString))
{
SqlDataAdapter mycmd=new SqlDataAdapter("mypro",myconn);
mycmd.SelectCommand.CommandType=CommandType.StoreProcedure;
DataSet ds=new DataSet();
mycmd.Fill(ds,"Titles");
DataGrid1.DataSource=ds.Tables["Titles"].DefaultView;
DataGrid1.DataBind();
}

9.参数存储过程查询
//Select * from authors where State=@State
/*
<%@ Import Namespace="System.Data.SqlClient"%>
<%@ Import Namespace="System.Data"%>
*/
string myConnectString="Data Source=localhost;Initial Catalog=pubs;UserID=sa;Password=";
using(SqlConnection myconn=new SqlConnection(myConnectString))
{
SqlDataAdapter mycmd=new SqlDataAdapter("mypro",myconn);
mycmd.SelectCommand.Parameters.Add(new SqlParamter("@State",SqlDbType.NVarChar,2));
mycmd.SelectCommand.CommandType=CommandType.StoreProcedure;
DataSet ds=new DataSet();
mycmd.Fill(ds,"Titles");
DataGrid1.DataSource=ds.Tables["Titles"].DefaultView;
DataGrid1.DataBind();
}

10.验证码
/*
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;
*/
        //建立位图对象
        Bitmap newBitmap = new Bitmap(36, 16, PixelFormat.Format32bppArgb);
        //根据上面创建的位图对象创建绘图面
        Graphics g = Graphics.FromImage(newBitmap);
        //创建字体对象
        Font textFont = new Font("Times New Roman", 10);
        //创建RectangleF结构指定一个区域
        RectangleF rectangle = new RectangleF(0, 0, 36, 16);
        //创建随机数对象
        Random rd = new Random();
        //取得随机数
        int valationNo = 1000 + rd.Next(9000);
        //使用指定的颜色填充上面RectangleF结构指定的矩形区域
        g.FillRectangle(new SolidBrush(Color.BurlyWood), rectangle);
        //在上面填充的矩形区域中填充上面生成的随机数
        g.DrawString(valationNo.ToString(), textFont, new SolidBrush(Color.Blue), rectangle);
        //把创建的位图保存到指定的路径

        // 方法一
        //newBitmap.Save(Server.MapPath("img") + "//VaImg.gif", ImageFormat.Gif);

        // 方法二
        Response.ContentType = "image/jpeg";
        newBitmap.Save(Response.OutputStream, ImageFormat.Jpeg);

        ///释放占用的资源
        newBitmap.Dispose();

11.中文验证码
/*
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.Text;
*/
        public static object[] CreateRegionCode(int strlength)
        {
            string[] rBase=new String [16]{"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};//定义一个字符串数组储存汉字编码的组成元素
            Random rnd=new Random();
            object[] bytes=new object[strlength];//定义一个object数组用来
            for(int i=0;i<strlength;i++)
            {
                //区位码第1位
                int r1=rnd.Next(11,14);
                string str_r1=rBase[r1].Trim();
                //区位码第2位
                rnd=new Random(r1*unchecked((int)DateTime.Now.Ticks)+i);//更换随机数发生器的种子避免产生重复值
                int r2;
                if (r1==13)
                {r2=rnd.Next(0,7);}
                else
                {r2=rnd.Next(0,16);}
                string str_r2=rBase[r2].Trim();
                //区位码第3位
                rnd=new Random(r2*unchecked((int)DateTime.Now.Ticks)+i);
                int r3=rnd.Next(10,16);
                string str_r3=rBase[r3].Trim();
                //区位码第4位
                rnd=new Random(r3*unchecked((int)DateTime.Now.Ticks)+i);
                int r4;
                if (r3==10)
                {r4=rnd.Next(1,16);}
                else if (r3==15)
                {r4=rnd.Next(0,15);}
                else
                {r4=rnd.Next(0,16);}
                string str_r4=rBase[r4].Trim();
                //定义两个字节变量存储产生的随机汉字区位码
                byte byte1=Convert.ToByte(str_r1 + str_r2,16);
                byte byte2=Convert.ToByte(str_r3 + str_r4,16);
                byte[] str_r=new byte[]{byte1,byte2};//将两个字节变量存储在字节数组中
                bytes.SetValue(str_r,i);//将产生的一个汉字的字节数组放入object数组中
            }
            return bytes;
        }
        private void CreateImage(string checkCode)
        {
            if(checkCode == null || checkCode.Trim() == String.Empty)
                return;
            System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 21)), 22);
            Graphics g = Graphics.FromImage(image);
            try
            {
                Random random = new Random();//生成随机生成器
                g.Clear(Color.White);//清空图片背景色
                for(int i=0; i<20; i++)//画图片的背景噪音线
                {
                    int x1 = random.Next(image.Width);
                    int x2 = random.Next(image.Width);
                    int y1 = random.Next(image.Height);
                    int y2 = random.Next(image.Height);
                    g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
                }
                Font font = new System.Drawing.Font("楷体", 12, (System.Drawing.FontStyle.Bold));
                System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
                g.DrawString(checkCode, font, brush, 2, 2);
                for(int i=0; i<100; i++)//画图片的前景噪音点
                {
                    int x = random.Next(image.Width);
                    int y = random.Next(image.Height);
                    image.SetPixel(x, y, Color.FromArgb(random.Next()));
                }
                g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);//画图片的边框线
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                Response.ClearContent();
                Response.ContentType = "image/Gif";
                Response.BinaryWrite(ms.ToArray());
            }
            finally
            {g.Dispose();
            image.Dispose();}
        }
            // 在此处放置用户代码以初始化页面
            Encoding gb=Encoding.GetEncoding("gb2312");
            object[] bytes=CreateRegionCode(4);//调用函数产生4个随机中文汉字编码 
            //根据汉字编码的字节数组解码出中文汉字
            string str1=gb.GetString((byte[])Convert.ChangeType(bytes[0], typeof(byte[])));
            string str2=gb.GetString((byte[])Convert.ChangeType(bytes[1], typeof(byte[])));
            string str3=gb.GetString((byte[])Convert.ChangeType(bytes[2], typeof(byte[])));
            string str4=gb.GetString((byte[])Convert.ChangeType(bytes[3], typeof(byte[])));
            Session["CheckCode"] = str1 + str2 +str3 +str4;//用于与输入的验证码作对比
            CreateImage(str1 + str2 +str3 +str4);

12.设置Cookies
//非[]@*?/{}()
Cookies("first")(%%1)=%%2;

13.获取Cookies值
string %%2=Cookies("first")(%%1);

14.获取所有的Cookies值
string %%2;
foreach(string cookie in Cookies("first"))
{
%%2=cookie;
%%3;
}

15.转发到另一个页面
使用Server.Transfer
这个方法相比上面介绍的方法稍微复杂一点,但在页面间值传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写一些代码以创建一些属性以便可以在另一个页面访问它,但是,这个方式带来的好处也是显而易见的。总体来说,使用这种方法是简洁的同时又是面向对象的。使用这种方法的整个过程如下:
1,在页面里添加必要的控件
2,创建返回值的Get属性过程
3,创建可以返回表单的按钮和链接按钮
4,在按钮单击事件处理程序中调用Server.Transfer方法转移到指定的页面
5,在第二个页面中,我们就可以使用Context.Handler属性来获得前一个页面实例对象的引用,通过它,就可以使用存取前一个页面的控件的值了
以下代码综合实现上述步骤过程的代码:
源页面代码:
把以下的代码添加到页面中
public string Name
{
get
{
return TextBox1.Text;
}
}

public string EMail
{
get
{
return TextBox2.Text;
}
}
然后调用Server.Transfer方法
private void Button1_Click
(object sender, System.EventArgs e)
{
Server.Transfer("anotherwebform.aspx");
}
目标页面代码:
private void Page_Load
(object sender, System.EventArgs e)
{
//create instance of source web form
WebForm1 wf1;
//get reference to current handler instance
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;
}

总结
本文讲述了使用不同的方法实现了ASP.NET页面间值传递,这三种方法是:QueryString,Session和Server.Transfer,我们应该反覆体会几种方法的异同

16.转发到本页面
好心人帮帮忙啊 一个页面转发到另一个页面 怎么出现 强制类型转换错误那?
在我的网站 mysite 下 自己见了一个文件夹 HPLC 当有有A B页面
当中的页面A.aspx 在其cs文件中  Server.Transfer("B.aspx", true);
在B 网页中 添加了一个按钮 在B的cs文件中 page_load事件中  HPLC_A hpmain = (HPLC_A)Context.Handler;
然而运行的时候  不点击按钮没有问题 一点击按钮 就说 HPLC_A hpmain = (HPLC_A)Context.Handler; 无法将类型为“ASP.hplc_B_aspx”的对象强制转换为类型“HPLC_A”
在按钮的点击事件中 我什么也没有写
回发时也会执行page load事件
可用if (!page.ispostback)
{
}

17.重定向
Response.Redirect(%%1);

18.设置Application变量值
Application(%%1)=%%2;

19.获取Application变量值
%%2=Application(%%1);

20.设置Session变量值
Session(%%1)=%%2;

21.获取Session变量值
%%2=Session(%%1);

22.获取网站的所有session和cookies

ASP NET精彩编程百例 pdf 学习ASP NET的必看书籍 讲述了100个ASp NET实例的来笼去脉 由这些实例扩展出许多值得学习的ASP NET技巧 是您学习ASP NET的必看知识 ASP NET是微软.NET战略中的一个重要成员 除了可以使用Visual C# VB.NET VisualC++ NET JScript.NET等语言编写外 还可以使用第三方的.NET接口 如COBOL.NET Perl.NET等 进行编写 本书通过100个精彩实例 由浅入深介绍了ASP NET网络程序设计的编程方法与实用技巧 为了方便读者学习与深入理解ASP NET 本书将这100 个实例分为4篇 即基础编程实例 中级编程实例 高级编程实例与混合编程实例 在每个实例中 除了介绍ASP NET中所提供的基础知识点及编程技巧外 还介绍了ASP NET在网络编程 图形编程 多媒体编程 Mobile 移动通信 等方面的重要应用及开发技术 本书附赠一张光盘 其中包括全部100个实例源代码及可执行文件 详细内容请参见光盘中的“本书配套光盘说明.txt” 本书体系结构清晰 解释说明详尽 开发实例典型 适合于计算机编程用户 网络用户及对ASP NET感兴趣的用户阅读 也可作为ASP NET培训参考书 书籍目录: 第1篇ASP NET基础编程实例 实例1一个HTML化的ASP NET程序 实例2ASP+WebForms广告轮换控制过程 实例3驱动器列表应用 实例4列出当前盘上目录和文件 实例5使用“文件预览”显示文件夹信息 实例6使用递归循环以显示目录列表 实例7在ASP 7NET中随意创建图形信息 实例8在ASP 8NET中显示事件日志记录 1 实例9在ASP 9NET中显示事件日志记录 2 实例10在ASP 10NET中使用DataGrid分页 实例11在ASP 11NET访问Excel2000 XP文件 实例12显示当前浏览器头信息 实例13利用ASP NET获取主机名和IP地址 实例14由域名获取其IP地址 实例15由IP地址获得其域名 实例16ASP NET中的正则表达式应用 实例17主机远程控制与探测应用 实例18ASP NET控件———AdRotator应用 实例19ASP NET日历程序 实例20查看主机内存情况 实例21ASP NET简易应用程序“Hello 22World ” 实例22读取Config 22Web配置文件 实例23显示BrowseCaps配置段内容 实例24写入文件操作与应用 实例25文件读操作及应用 实例26文件删除与应用 实例27ASP NET中异常处理及其应用 实例28AutoPostBack技术及其应用 实例29用户合法性验证与应用 实例30ASP 30NET列表框应用 实例31Calendar控件操作与应用 实例32用户操作验证与应用 实例33CompareValidator服务器比较控件操作与应用 实例34CustomValidator控件操作与应用 实例35服务器端控件ValidationSummary应用操作 实例36HtmlTable控件操作与应用 实例37在HTML控件中运用样式 实例38在Web服务器控件中运用样式 第2篇ASP NET中级编程实例 第3篇ASP NET高级编程实例 本站提供的ASP NET编程百例 PDF扫描版 附源代码(vb net)资源来源互联网 版权归该下载资源的合法拥有者所有 收起信息返回顶部
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值