| « | 三月 2010 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 | ||||
夜雨寄北
李商隐
君问归期未有期,巴山夜雨涨秋池。
何当共剪西窗烛,却话巴山夜雨时。
一位ASP.net初学者学习过程中整理的备忘录,包括“打开新的窗口并传送参数,为按钮添加对话框,删除表格选定记录,删除表格记录警告”等等常见问题的解决方法。 查看全文
在这里给大家提供一些平时经常容易用到的效果的解决方案。我把一些效果封装在了一个类库文件中。
警告窗口
/// <summary>
/// 服务器端弹出alert对话框
/// </summary>
/// <param name="str_Message">提示信息,例子:"不能为空!"</param>
/// <param name="page">Page类</param>
public void Alert(string str_Message,Page page)
{
page.RegisterStartupScript("","<script>alert('"+str_Message+"');</script>");
}
重载此警告窗口,使某控件获得焦点 查看全文
<%@ Page Language=VB Debug=true %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OLEDB" %>
<script runat=server>
Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
If Not IsPostBack Then
Dim DBConn as OleDbConnection
Dim DBCommand As OleDbDataAdapter
Dim DSPageData as New DataSet
''DBConn = New OleDbConnection( _
'' "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
'' & "DATA SOURCE=" _
'' & "F:NETxuexinet113EmployeesDB.mdb;")
''DBConn = New OleDbConnection( _
'' "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
'' & "DATA SOURCE=" _
'' & "F:NETxuexinet113EmployeesDB.mdb;")
DBConn = New OleDbConnection( _
"PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
& "DATA SOURCE=" _
& "F:NETxuexinet113EmployeesDB.mdb;")
DBCommand = New OleDbDataAdapter _
("Select LastName & '', '' & FirstName " _
& "as EmpName, EmpID " _
& "From Employees " _
& "Order By LastName, FirstName", DBConn)
DBCommand.Fill(DSPageData, _
"Employees")
ddlEmps.DataSource = _
DSPageData.Tables("Employees").DefaultView
ddlEmps.DataBind()
End If
End Sub
</SCRIPT>
<HTML>
<HEAD>
<TITLE>Connecting to an Access Database连接到一个ACCESS数据库</TITLE>
</HEAD>
<Body LEFTMARGIN="40">
<form runat="server">
<BR><BR>
<asp:dropdownlist
id="ddlEmps"
datatextfield="EmpName"
datavaluefield="EmpID"
runat="server"
/>
</form>
</BODY>
</HTML>
用过ASP的人对它的调试应该是记忆深刻的。在整片整片的代码中找到那几个出错的地方,难度可想而知。现在微软推出了ASP的更新换代产品ASP.Net。对于ASP.Net的好处,我想很多网站都已经介绍了差不多的,不过对于ASP.Net的调试讲得就不是很多了。所以,我就以我的一点个人经验写了这一篇文章。由于,我也是接触ASP.Net不久,错漏之处在所难免,还请大家多多指正。好了,言归正传。
第一招:配置Config.web
一般,当我们写好的网页运行出错了,ASP.Net就会在页面上告诉我们程序有
错了,但究竟错在哪里,它是没有提示的。为了能让ASP.Net进一步提示我们出错
的信息。我们就有必要编辑Config.web中的配置信息。
可能还有很多刚刚接触ASP.Net的人不太了解Config.web这个文件。那我就顺便介绍一下。Config.web是ASP.Net的一个配置文件,它里面存放着关于ASP.Net的所有配置信息。当执行一个ASP.Net页面时,它会先到该页面所在的目录查找这个文件,如果没有找到,就往上一级目录找,一直到wwwroot目录。如果都没有,它就会调用X:WINNTMicrosoft.NETFrameworkv1.0.2204目录中的Config.web文件(X为系统目录)。所以,如果大家要想改变所有页面的配置,就应该改WINNT目录中的那个Config.web。另外顺便说一下,当你打开Config.web后,你会发现这是一个XML结构的配置文件。
好了,介绍解说这么多了,回到我们的主题。现在你要做的第一步就是:打
开或者新建一个Config.web文件。我们分开来说: 查看全文
学习目的:学会SESSION和COOKIE的使用
在各个网页间的变量传递和一些记录用户的登陆信息要用到SESSION和COOKIE。在ASP.NET中使用COOKIE比ASP中稍微麻烦一点,因为我们要申明变量。
首先看一下SESSION的使用,基本和ASP差不多
写入一个SESSION:
Session["username"])="aa";
--------------------------------------------------------------------------------
Session("username")="aa"
读取一个SESSINN:
string username= Session["username"];
--------------------------------------------------------------------------------
dim username=Session("username")
再来看一下COOKIE的写入:
DateTime dt=DateTime.Now; //需要<%@Import Namespace="System"%>,得到当前时间
HttpCookie mycookie=new HttpCookie("logname");//申明新的COOKIE变量
mycookie.Value="aa";//赋值
mycookie.Expires=Convert.ToDateTime(dt+TimeSpan.FromDays(1));//设定过期时间为1天
Response.Cookies.Add(mycookie1);//写入COOKIE
--------------------------------------------------------------------------------
dim dt as DateTime
dt=DataTime.Now
dim mycookie as HttpCookie
mycookie=new HttpCookie("logname")
mycookie.Value="aa"
mycookie.Expires=Convert.ToDateTime(dt+TimeSpan.FromDays(1))
Response.Cookies.Add(mycookie1)
看一下COOKIE的读取:
HttpCookie mycookie=Request.Cookies["username"];
string username=mycookie.Value;
--------------------------------------------------------------------------------
dim mycookie as HttpCookie
mycookie=Request.Cookies["username"]
dim string=mycookie.Value
到此《十天学会ASP.NET》结束了,时间仓促,还请大家原谅写的不全,实际上我只是带大家入门,学会还要靠自己啊
习目的:学会用DATAGRID分页显示
虽然说DATAGRID的分页显示效率不怎么高,但是不管怎么说,它是最方便的分页显示,对于做一个留言簿还是相当简单实用的。对于启用分页功能还有一个重要要求,只能在DATADRID控件的数据源实现了ICOLLECTION接口的情况下才能启用分页功能,而DATAREADER没有这个接口,所以必须使用DATATABLE来代替。
< script runat="server" language="c#">
void Page_Load()
{
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;Data Source=";
strConnection+=Server.MapPath("guestbook.mdb");
OleDbConnection objConnection=new OleDbConnection(strConnection);
OleDbDataAdapter objDataAdapter=new OleDbDataAdapter("select * from guestbook",objConnection);
DataSet objDataSet=new DataSet();
objDataAdapter.Fill(objDataSet);
dgrdMain.DataSource=objDataSet;
dgrdMain.DataBind();
}
void dgrdMain_PageIndexChanged(Object sender, DataGridPageChangedEventArgs e)
{
dgrdMain.CurrentPageIndex = e.NewPageIndex;
DataBind();
}
< /script>
< html>
< body>
< asp:DataGrid
id="dgrdMain"
cellpadding="1"
showheader="true"
borderwidth="0"
allowpaging="true" 启用分页功能
pagesize="3" 每一页显示三条记录
onpageindexchanged="dgrdMain_pageindexchanged " 调用第×页的函数为dgrdMain_PageIndexChanged()
runat="server"
/>
< /body>
< /html>
--------------------------------------------------------------------------------
<script runat="server" language="vb">
subPage_Load
dim objConnection as OleDbConnection
dim objDataAdapter as OleDbDataAdapter
dim objDataSet as DataSet
objConnection=new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source="+Server.MapPath("guestbook.mdb"))
objDataAdapter=new OleDbDataAdapter("select * from guestbook",objConnection)
objDataSet=new DataSet
objDataAdapter.Fill(objDataSet)
dgrdMain.DataSource=objDataSet
dgrdMain.DataBind()
end sub
sub dgrdMain_PageIndexChanged(sender as object,e as datagridpagechangedeventargs)
dgrdMain.CurrentPageIndex = e.NewPageIndex
DataBind
end sub
< /script>
< html>
< body>
< asp:DataGrid
id="dgrdMain"
cellpadding="1"
showheader="true"
borderwidth="0"
allowpaging="true" 启用分页功能
pagesize="3" 每一页显示三条记录
onpageindexchanged="dgrdMain_pageindexchanged " 调用第×页的函数为dgrdMain_PageIndexChanged()
runat="server"
/>
< /body>
< /html>
这样就是最简单的分页,我们可以用参数pagestyle-mode="nextprev/numericpages"来设定是显示上一页、下一页方式还是直接选择页面的数字方式来实现页面跳转。如果是前者我们可以用pagestyle-nextpagetext来设定包含下一页链接的文本,用pagestyle-prevpagetext来设定包含上一页链接的文本;如果是后者我们可以用PagerStyle-PageButtonCount来设定在使用省略号之前显示的页面编号数量(默认是10)
今天就说到这里,明天说一下SESSION和COOKIE
学习目的:初步掌握DATAGRID的使用
以前在ASP中,我们显示大批量数据经常使用循环读取记录集的方式,在表格中插入代码来显示,循环的是<tr>,如果是分页还需要自己制作,如果排序更加复杂,在ASP.NET中就好了,一切工作都可以让DATAGRID来做。
首先看一下DATAGRID的样式方面的属性
BackImageUrl="" 背景图片
CellSpacing="" 单元格间距
CellPadding="" 单元格填充
cssClass="" 使用的CSS样式
DATAGRID可以自动用表中的字段名放在显示的记录的头部来表示各个单元格所代表的意义,用ShowHeader="true/false"来控制是不是显示,在大多数情况下我们是不需要这个功能的,因为我们数据库中的字段名大多是英文的,而我们想在页面输出的大多是中文名字。
下面看一下显示数据库内所有记录,就几行代码:
查看全文
学习目的:学会添加删除修改记录
以前我们在ASP中不管是添加还是删除记录或者用SQL语句加上EXECUTE()或者就是直接用RECORDSET的NEW、DELETE、UPDATE等方法来添加删除修改记录。在ASP.NET里面我们采用SQL语句加上COMMAND对象来执行SQL语句的方法来添加删除修改记录。这比上次说的读取记录还简单。实际上只有一点区别,把ExecuteReader()修改为ExecuteNonQuery()即可,因为我们不需要返回值啊。
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;Data Source=";
strConnection+=Server.MapPath(strDb);
OleDbConnection objConnection=new OleDbConnection(strConnection);
OleDbCommand objCommand = new OleDbCommand("这里是SQL语句" , objConnection);
objConnection.Open();
OleDbDataReader objDataReader=objCommand.ExecuteNonQuery();
--------------------------------------------------------------------------------
dim objConnection as OleDbConnection
dim objCommand as OleDbCommand
objConnection=new OleDbConnection(Provider=Microsoft.Jet.OleDb.4.0;Data Source="+Server.MapPath(strDb))
objCommand=new OleDbCommand("这里是SQL语句" , objConnection)
objConnection.Open()
objDataReader=objCommand.ExecuteNoQuery()
下面再举例子说明一下SQL语句(ACCESS):
添加记录: insert int
o 表名 (字段1,字段2) values (字符串1,字符串2) where 条件
删除记录: delete from 表名 where 条件
修改记录: update 表名 set 字段1=××,字段2=×× where 条件
需要特别注意,如果是Sql Server删除记录是delete 表名,不需要再加from了。
今天就说到这里了,明天说ASP.NET里面最著名的DATAGRID
学习目的:学会读取数据库
有的网友说,不会C#,在ASP.NET里面还是选择VB.NET,这个我不反对,但是我觉得既然是学习新的东西,就不要在意有多少是新的。实际上C#就一般的操作来说,只是区分大小写和多了一个分号这两点与VB.NET不同其他都差不多啊。在ASP里面我们读取数据就直接用RECORDSET,然后在HTML代码里面穿插<%= %>就可以显示了,但是ASP.NET讲究的是代码分离,如果还是这样显示数据就不能代码分离了。所以我们有两种方法:如果是读取一条记录的数据或者不多的数据,我们用DATAREADER采集数据,然后赋值给LABEL控件的Text属性即可;如果是读取大量数据我们就采用DATAGRID。
查看全文
学习目的:学会读取数据库
有的网友说,不会C#,在ASP.NET里面还是选择VB.NET,这个我不反对,但是我觉得既然是学习新的东西,就不要在意有多少是新的。实际上C#就一般的操作来说,只是区分大小写和多了一个分号这两点与VB.NET不同其他都差不多啊。在ASP里面我们读取数据就直接用RECORDSET,然后在HTML代码里面穿插<%= %>就可以显示了,但是ASP.NET讲究的是代码分离,如果还是这样显示数据就不能代码分离了。所以我们有两种方法:如果是读取一条记录的数据或者不多的数据,我们用DATAREADER采集数据,然后赋值给LABEL控件的Text属性即可;如果是读取大量数据我们就采用DATAGRID。
查看全文学习目的:学会连接两种数据库
对于ASP来说,我们常用的数据库无非是ACCESS和SQL SERVER,对于ASP.NET也是,不过ASP.NET对于SQL SERVER有专门的连接组件而不推荐用OLE DB。
首先看一下ACCESS的连接数据库并打开;
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;Data Source=";
strConnection+=Server.MapPath("*.mdb"); //*就是数据库的名字
OleDbConnection objConnection=new OleDbConnection(strConnection);
objConnection.Open();
--------------------------------------------------------------------------------
dim objConnection as OleDbConnection
objConnection=new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source="+Server.MapPath("*.mdb"))
objConnection.Open()
学习目的:学会读取数据库
有的网友说,不会C#,在ASP.NET里面还是选择VB.NET,这个我不反对,但是我觉得既然是学习新的东西,就不要在意有多少是新的。实际上C#就一般的操作来说,只是区分大小写和多了一个分号这两点与VB.NET不同其他都差不多啊。在ASP里面我们读取数据就直接用RECORDSET,然后在HTML代码里面穿插<%= %>就可以显示了,但是ASP.NET讲究的是代码分离,如果还是这样显示数据就不能代码分离了。所以我们有两种方法:如果是读取一条记录的数据或者不多的数据,我们用DATAREADER采集数据,然后赋值给LABEL控件的Text属性即可;如果是读取大量数据我们就采用DATAGRID。
查看全文
| |
| |