aspnet怎么调用存储过程
⑴ 数据库中有几万条数据,怎样使用aspnetpage分页控件结合数据库分页读取呢
可以用存储过程分页
/*
函数名称: GetRecordFromPage
函数功能: 获取指定页的数据
参数说明: @tblName 包含数据的表名
@fldName 关键字段名
@PageSize 每页记录数
@PageIndex 要获取的页码
@OrderType 排序类型, 0 - 升序, 1 - 降序
@strWhere 查询条件 (注意: 不要加 where)
*/
CREATE PROCEDURE GetRecordFromPage
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(2000) = '' -- 查询条件 (注意: 不要加 where)
AS
declare @strsql varchar(6000) -- 主语句
declare @strTmp varchar(1000) -- 临时变量
declare @strOrder varchar(500) -- 排序类型
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName + '] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp = ''
if @strWhere != ''
set @strTmp = ' where (' + @strWhere + ')'
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
exec (@strSQL)
GO
⑵ asp.net的消息流动
当装载(hosting)asp.net的 Web 服务器接收到 HTTP 要求时,HTTP 聆听程序 (HTTP Listener) 会将要求转交给 URL 指定的网站应用程序的工作流程 (Worker Process),asp.net的工作流程处理器 (aspnet_isapi.dll,若是 IIS 5.0 时则是 aspnet_wp.exe) 会解析 URL,并激活位于 System.Web.Hosting 命名空间中的 ISAPIRuntime(视版本)对象,接收 HTTP 要求,并调用 HttpRuntime,运行 HttpRuntime.ProcessRequest(),在 ProcessRequest() 中使用 HttpApplicationFactory 建立新的 HttpApplication (或是指定的 IHttpHandler 处理器),再分派给 Page 中的 ProcessRequest() 或是 IHttpHandler 的 ProcessRequest() 方法,运行之后,再传回到 ISAPIRuntime,以及 aspnet_isapi.dll,最后交由 HTTP Listener 回传给用户端,因为运行程序有如管线般顺畅的运行,因此称为HTTP Pipeline Mode。
在asp.net内部的 HTTP 处理器有:
ISAPIRuntime:由 aspnet_isapi.dll 调用,初始化 HttpWorkerRequest 对象(会由IIS的版本决定要初始化的版本)。 HttpRuntime:提供要求队列 (Request Queue)、调用 HttpWorkerRequest 中的 ProcessRequest() 方法,以及后续的处理工作。 HttpWorkerRequest:产生 HttpApplication、HttpRequest、HttpResponse 等基础对象的 HTTP 要求对象,并将要求转送到要处理的对象(并调用它的 ProcessRequest() 方法)。 IHttpHandler 与 IHttpAsyncHandler:负责处理 HTTP 要求的单元,由 ProcessRequest() 来分派与运行要求。asp.net网页中的事件程序 当 HttpWorkerRequest 调用asp.net网页(System.Web.UI 命名空间的 Page 类) 的 Page.ProcessRequest() 方法时,它会依序的引发 Page 内的各个事件,并同时调用在 Page 中所有控件的相关事件,其引发顺序为:
PreInit 事件:运行预先初始化的工作,在asp.net2.0中,若要动态调整主版页面 (Master Page)、布景主题 (Theme) 时,要在这个事件中调整。 Init 事件:运行初始化工作。 InitCompleted 事件:在完成初始化工作后引发。 Preload 事件:运行预先加载的工作。 Load 事件:运行加载的工作,大多数的网页都拥有 Page_Load 事件处理程序,用户控件 (user control) 中也有 Page_Load 事件例程,都会在此时调用。 控件的 PostBack 变更通知:当网页侦测到是 PostBack 要求时,会引发 PostBack 消息通知的事件。 控件的 PostBack 相关事件:当网页侦测到是 PostBack 要求时,会引发 PostBack 消息指定的控件的事件。 LoadCompleted 事件:运行加载完成后的工作。 PreRender 事件:处理在产生 HTML 结果前的工作。 SaveStateCompleted 事件:处理页面状态 (ViewState 与 ControlState) 储存完成后的事件。 Render 事件:处理产生 HTML 的工作。 Unload 事件:处理退出网页处理时的工作。 如果 HttpWorkerRequest 调用的是实现 IHttpHandler 界面的HTTP 处理程序时,它只会调用 IHttpHandler.ProcessRequest() 方法,由它来处理程序的输出,不像 Page.ProcessRequest() 会处理事件顺序,因此 HTTP Handler 很适合轻量级的数据处理,像是输出文件数据流或是图片数据流等。
⑶ 如何进行C#连接Access数据库的细节操作
许多学者总会面对于数据库的知识,以下的例子讲述到Access数据库说明,用C#的DataSet类访问数据库的一些操作方法。
操作涉及的主要C#类有:
DataSet:对应数据库表的一个集合,实际上是数据库表在内存中的一个缓存
DataTable:对应数据库表,是数据库表行的集合
DataRow:对应数据库表行
OleDbConnection:建立数据库连接
OleDbDataAdapter:由数据库生成DataSet,并负责DataSet与数据库的同步
OleDbCommandBuilder:生成更新数据库所需的指令www.kmxxfk.com
DataSet、DataTable、DataRow用于数据在缓存中的操作,这上面的操作只有更新到数据库中,修改结果才会被永久保存。OleDbConnection 是用OLEDB方法连接数据库所必需的。OleDbDataAdapter和OleDbCommandBuilder用来生成DataSet,完成数据库更新。与OleDbDataAdapter和OleDbCommandBuilder相对应,SqlDataAdapter和SqlCommandBuilder也可以完成用SQL语言为指令的数据库更新。
假设在D:盘创建了Access数据库,其路径为d:\0DBAcs\account.mdb,数据库中有一张名为kai的数据库表。表结构如下:
表名;Kai
字段Field Name类型说明
1开支IDkzID长整型自动编号
2开支人Kzren文本50字符
3开支项目名kzname文本50字符
4日期riqi日期/时间99-99-99;0掩码
5开支说明shuoming文本225字符
6总金额zonge单精度小数点任意;这项开支的总花费
7数量shuliang长整型www.kmxxfc.com
8单价Danjia单精度小数点任意
表建好之后:(1)对表中添加新数据(2)查询表中的某个字段。为了实现这两项功能,以下几个问题要考虑:
1准备工作
声明必须的公共变量
建立与数据库的连接,创建DataSet对象
2添加记录
在DataSet对象上添加记录
同步DataSet对象对象与数据库中的数据,这一点很重要,很多人忘记了数据进行同步,结果往往是添加、修改的数据不能保存到数据库中。
3查询数据库表中某记录的某字段;
我们可以将上述功能用一个类DataOper实现,下面是程序设计的主要活动。
声明要用的C#系统类
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
声明DataOper类中的公共变量
private string DBlocation;
private OleDbConnection dbconn; //数据库连接
private OleDbDataAdapter da;
建立与数据库的连接,这里采用了OLEDB方法:
dbconn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; Data Source=d:\0DBAcs\account.mdb");
dbconn.Open();
创建DataSet对象
da = new OleDbDataAdapter(@"select * from kai", dbconn); //引用数据库连接dbconn并依据SQL语句"select * from kai"创建OleDbDataAdapter对象da
DataSet ds = new DataSet(); //创建DataSet对象
da.Fill(ds); //用OleDbDataAdapter对象da填充、更新刚创建的DataSet对象
添加记录并更新数据库
OleDbCommandBuilder cb = new OleDbCommandBuilder(da); // 创建OleDbCommandBuilder对象cb用于更新OleDbDataAdapter对象da的Insert、Delete、Update指令
da.UpdateCommand = cb.GetUpdateCommand(); //更新OleDbDataAdapter对象da的指令
设计人员可以编写自己的更新指令,也可以象上面所写的那样用系统默认的指令。但不管怎样,上面的语句不能缺少,否则程序在运行中会抛出异常System.InvalidOperationException,并提示:Update requires a valid InsertCommand when passed DataRow collection with new rows.
DataRow drx = ds.Tables[0].NewRow(); //创建一条新记录行
drx["kzren"] = "kzren";
drx["kzname"]="kzname";
drx["riqi"]=2008-10-11;
drx["shuoming"]="shuoming";
drx["zonge"] = 12;
drx["shuliang"] = 3;
drx["danjia"] = 4;
ds.Tables[0].Rows.Add(drx); //在表中追加记录
da.Update(ds); //更新数据库
要查询引用某记录的某字段,直接按如下的方法引用就可以了。
String kx=ds.Tables[0].Rows[0]["kzren"].ToString()连接access
首先看一个例子代码片断:
程序代码:www.lzfsk.com/
--------------------------------------------------------------------------------
using system.data;
using system.data.oledb;
......
string strconnection="provider=microsoft.jet.oledb.4.0;";
strconnection+=@"data source=c:\begas.Net\northwind.mdb";
oledbconnection objconnection=new oledbconnection(strconnection);
......
objconnection.open();
objconnection.close();
......
--------------------------------------------------------------------------------
解释:
连接access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!
strconnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源.
"provider=microsoft.jet.oledb.4.0;"是指数据提供者,这里使用的是microsoft jet引擎,也就是access中的数据引擎,ASP.net就是靠这个和access的数据库连接的.
"data source=c:\begaspnet\northwind.mdb"是指明数据源的位置,他的标准形式是"data source=mydrive:mypath\myfile.mdb".
ps:
1."+="后面的"@"符号是防止将后面字符串中的"\"解析为转义字符.
2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:
strconnection+="data source=";
strconnection+=mappath("northwind.mdb");
这样就可以省得你写一大堆东西了!
3.要注意连接字符串中的参数之间要用分号来分隔.
"oledbconnection objconnection=new oledbconnection(strconnection);"这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道.
"objconnection.open();"这用来打开连接.至此,与access数据库的连接完成.其余操作(插入,删除...)请参阅相关书籍
连接SQL Server
例子代码片断:
程序代码:
--------------------------------------------------------------------------------
using system.data;
using system.data.sqlclient;
...
string strconnection="user id=sa;passWord=;";
strconnection+="initial catalog=northwind;server=yoursqlserver;";
strconnection+="connect timeout=30";
sqlconnection objconnection=new sqlconnection(strconnection);
...
objconnection.open();
objconnection.close();
...
--------------------------------------------------------------------------------
解释:
连接sql server数据库的机制与连接access的机制没有什么太大的区别,只是改变了connection对象和连接字符串中的不同参数.
首先,连接sql server使用的命名空间不是"system.data.oledb",而是"system.data.sqlclient".
其次就是他的连接字符串了,我们一个一个参数来介绍(注意:参数间用分号分隔):
"user id=sa":连接数据库的验证用户名为sa.他还有一个别名"uid",所以这句我们还可以写成"uid=sa".
"password=":连接数据库的验证密码为空.他的别名为"pwd",所以我们可以写为"pwd=".
这里注意,你的sql server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的sql server设置为Windows登录,那么在这里就不需要使用"user id"和"password"这样的方式来登录,而需要使用"trusted_connection=sspi"来进行登录.
"initial catalog=northwind":使用的数据源为"northwind"这个数据库.他的别名为"database",本句可以写成"database=northwind".
"server=yoursqlserver":使用名为"yoursqlserver"的服务器.他的别名为"data source","address","addr".如果使用的是本地数据库且定义了实例名,则可以写为"server=(local)\实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或ip地址.
"connect timeout=30":连接超时时间为30秒.
在这里,建立连接对象用的构造函数为:sqlconnection.
其余的就和access没有什么区别了!
********************************************************************************************************************
用c#访问access数据库
我编写这个程序的动机是当我希望用c sharp访问msaccess数据库的时候我没有办法获得任何信息和参考材料.网上所能获得的所有材料都是偏重于sql的,所以我们将分两步来编写这个应用程序,第一我们将展示如何连接到msaccess数据库然后看看它有多复杂.最后,我们就这样完成了这个程序.
闲言少序,让我们开始正题.连接到数据库的过程与我们早先的ado连接过程相比已经发生了较大的变化.下面的图表恰当的(我希望如此)oledbconnection--> oledbcommand --> oledbdatareader.现在那些熟悉ado的人很明显能看出两者的相似之处但是为了使那些还没有很好的适应ado的人能够明白,下面是一些解释.
oledbconnection -->代表对数据库的单一连接,根据底层数据库的功能它能给你操纵数据库的能力.有一点必须记住,虽然oledbconnection对象出了作用范围,它也不会自动被关闭.所以,你将不得不显示的调用这个对象的close()方法.
oledbcommand -->这是就象我们在ado中使用的一样的通常的command对象.你可以通过这个对象调用sql存储过程或是sql查询语句.
oledbdatareader -->这个类拥有非常大的重要性因为它提供了实际上的对数据库底层数据集的访问.当你调用oledbcommand的executereader方法的时候它就会被创建,.net beta2 sdk说不要直接创建这个类的对象.
现在你可以在.net beta 2的文档中看到更多的关于这些主要对象的说明,下面是指出如何在程序中访问数据库的源代码.
using system;
using system.data.oledb;
class oledbtest{
public static void main()
{
/创建数据库连接
oledbconnection aconnection = new oledbconnection("provider=microsoft.jet.oledb.4.0;data source=c:\\db1.mdb");
/创建command对象并保存sql查询语句
oledbcommand acommand = new oledbcommand("select * from emp_test", aconnection);
try
{
aconnection.open();
/创建datareader 对象来连接到表单
oledbdatareader areader = acommand.executereader();
console.writeline("this is the returned data from emp_test table");
/循环遍历数据库
while(areader.read())
{
console.writeline(areader.getint32(0).tostring());
}
/关闭reader对象
areader.close();
/关闭连接,这很重要
aconnection.close();
}
/一些通常的异常处理
catch(oledbexception e)
{
console.writeline("error: {0}", e.errors[0].message);
}
}
}
成功运行这个程序的步骤
1.用msaccess创建一个名叫db1.mdb的数据库
2.创建一个名叫emp_test的表单
3.使它包含下列数据域
emp_code int
emp_name text
emp_ext text
4.将上面的代码保存到sample.cs文件中
5.确保数据库位于c:\并确保mdac2.6或是更新的版本已经被安装
6.编译运行
现在让我们来了解一些我们在oledbconnection对象的构造函数看到的东西的一些细节,在这里你看见诸如"provider="之类的东西.下面是一些和ado.net兼容的驱动程序类型.
sqlolddb --> microsoft ole db provider for sql server,
msra --> microsoft ole db provider forOracle,
microsoft.jet.oledb.4.0 --> ole db provider for microsoft jet
你可以选择其中的任何一个但是他们会需要传递不同的参数,例如jet.oledb.需要传递mdb文件的名字而sqloledb需要传递用户名和密码.
所有这些驱动程序都位于system.data.oledb命名空间里,所以你必须包括它,而且它们和oledb provider for odbc不兼容,也就是说你不能在VB6.0程序里使用这些驱动程序来访问数据库,所以不要去寻找解释为什么要把这些数据库放在c:\上的资料了
当你使用microsoft sql server 7.0 或者更新版本的时候,下面是微软给出的一些指导:
推荐使用.net data provider在下列情况中,使用microsoft sql server 7.0 或者更新版本的中间层应用程序,使用microsoft data engine (msde)或icrosoft sql server 7.0 或者更新版本的单层应用程序.
建议将ole db provider for sql server (sqloledb)和ole db .net data provider一起使用.
对于microsoft sql server 6.5和更早的版本,你必须同时使用ole db provider for sql server 和 ole db.net data provider.
推荐使用microsoft sql server 6.5和更早的版本或是oracle的中间层应用程序使用ole db .net data provider.
对于microsoft sql server 7.0 或者更新版本,推荐sql server .net data provider.
推荐单层应用程序使用microsoft access数据库.
不推荐一个中间层程序同时使用ole db .net data provider和microsoft access数据库.
不再支持ole db provider for odbc (msdasql)
⑷ .net中如何实现对第三方控件SChelerControl控件的绑定以及使用说明
下面有关用户控件与aspx页面区别说法错误的是(B)
aa// 用户控件不能再包含<HTML><BODY><FORM>标记,而aspx页面可以包含
bb// 用户控件不能触发服务器端的事件,只是一种外观重用方式,而aspx页面可以
cc// 用户控件继承自System.Web.UI.UserControl,而aspx页面继承自System.Web.UI.Page
dd// 用户控件可以包含其它用户控件,但是不能直接访问,必须包含在某个aspx页面中才可以访问,而aspx页面是可以直接访问的
想在在aspx页面使用用户控件,则aspx页面开始部分必须添加下面哪个页面指令A
aa// <%@ Page %>
bb// <%@ Master %>
cc// <%@ Control %>
dd// <%@ Register %>
根据你的理解,你认为第三控件与用户控件的主要区别是A
aa// 第三方控件是编译后的代码,后缀为dll,只要应用程序引用进来,就可以使用,而用户控件是页面文件,属于非编译代码,只限于在当前应用程序中使用
bb// 用户控件比第三方控件更灵活,可以在应用程序中多个地方使用
cc// 用户控件出现在工具箱中,而第三方控件不会出现在工具箱中
dd// 用户控件比第三方控件的执行效率要高一些
下面关于HttpHandler与HttpMole说法正确的是C
aa// 一个Http请求中可以经历多个HttpMole和一个HttpHandler
bb// 一个Http请求中可以经历多个HttpHandler和一个HttpMole
cc// HttpMole是一个Http请求的最终处理者
dd// HttpHandler通常做一些停止数据向客户端输出的操作
在aSPNET中,关于HttpHandler说法不正确的是:(D)
aa// 通常文件后缀名为ashx
bb// 它是一个Http请求处理的最终点
cc// 它实现了IHttpHandler
dd// 当它的IsReusable属性为false时,表示只能使用一次
下面哪个选项不能在web.config文件中配置的(C)
aa// 连接字符串
bb// 身份验证
cc// 网站导航
dd// 程序出现错误时,定向到的错误提示页面
aSPNET支持三种验证方式,不属于其中的是(B)
aa// passport
bb// SqlServer身份
cc// Windows
dd// Forms
在网站某个目录的web.config配置文件中,有一段关于该目录授权的代码,经过分析,你认为正确的答案是:B
<authentication>
<deny user="?" /> 拒绝所有匿名用户
<allow users="xiaozhang" /> 容许xiazhang
<deny roles="*"> 拒绝所有用户
</authentication>
aa// 所有用户都可以访问该网站目录,除xiaozhang以外
bb// 所有用户都不能访问该网站目录,除xiaozhang以外
cc// 匿名用户和xiaozhang都不能访问该网站目录
dd// 所有角色和用户都不能访问该网站目录
已知在网站的根目录下有一个web.config文件,有如下关于验证的代码,正确说法的是B
<authorization mode="Forms">
<forms name="userLogin" loginUrl="~/login.aspx" timeout="20">
</forms>
</authorization>
aa// loginUrl的作用是,当用户登录不成功时,转向login.aspx页面
bb// loginUrl的作用是,当用户进入网站如果未登录,就转向login.aspx页面
cc// timeout是超过20分钟不登录,就退出网站
dd// timeout的作用是当20分钟后,用户还没有登录,就转向login.aspx页面
下列关于部署的说法,正确的是(a d)
aa// 部署就是将站点文件复制到相关web目录中
bb// 应该在本地站点将内容处理好,比如数据库连接字符串设置好并加密,然后直接复制到站点到远程服务器相关目录即可
cc// 发布预编译站点,如果将来需要更新某个页面,最好不要选择使用”使用固定命名和单页程序集”
dd// 发布预编译站点就是将站点所有文件都编译到dll中
下面(C)不属于导航控件
aa// Menu
bb// SiteMapPath
cc// View
dd// SiteMapDataSource
在asp.net中的母版中的内容页中能包含的HTML元素是(D)
aa// <html>
bb// <head>
cc// <body>
dd// <script>
如果希望使用TreeView控件显示时默认全部展开应设置(D)属性
aa// ExpandDepth
bb// ExpandImageToolTip
cc// ExpandImageUrl
dd// Expand
在SiteMapPath控件中,要设置导航路径中分隔符应设置(B)属性
aa// PathDirection
bb// PathSeparator
cc// PathSeparatorStyle
dd// Provider
下列关于ContentPlaceHolder控件说法错误的是(C)ContentPlaceHolderMain
aa// ContentPlaceHolder 控件为母版页中的内容定义一个相对区域
bb// 母版页还包括一个或多个 ContentPlaceHolder 控件
cc// ContentPlaceHolder 控件必须包含在内容页中
dd// Content 控件使用其 ContentPlaceHolderID 属性与 ContentPlaceHolder 关联.
下列(c)模板不属于Repeater控件
aa// ItemTemplate
bb// alternatingItemTemplate
cc// SelectedItemTamplate
dd// SeparatorTemplate
设置(a)属性将会页面显示DataList控件时调用EditItemTemplate模板
aa// EditItemIndex
bb// EditIndex
cc// SelectedItemIndex
dd// ModifyItemIndex
如果在DataList中实现分页一般(AB)(选择二项)
aa// 使用Sql语句
bb// 使用PagedDataSource对象进行分页
cc// 设置CurrentPageIndex属性
dd// 设置DataList的PageIndex属性
DataList中的交替行模板是(B)
aa// ItemTemplate
bb// alternatingItemTemplate
cc// SelectedItemTamplate
dd// SeparatorTemplate
下面关于DataList说法错误的是(C)
aa// DataList没有内置分页功能
bb// DataList具有SelectedItemTamplate模板
cc// DataList不能使用ObjectDataSource控件进行绑定数据 可以使用ObjectDataSource控件进行绑定数据
dd// DataList比Repeater控件多了二个模板 DataList有编辑模板和选择模板
在一个aSPX页面的Page_Load事件中,编写了如下代码,则执行该页面后,将在页面中输出(a)。(选择一项)
private void Page_Load(object sender , System.Eventargs e){
Response . Write(“欢迎光临”);
Response . End();
Response . Write(“欢迎下次光临”);
}
aa// 欢迎光临
bb// 欢迎下次光临
cc// 欢迎光临
欢迎下次光临
dd// 欢迎光临欢迎下次光临
在aSP.NET中,application是(C)类的实例
aa// Httpapplication
bb// HttpapplicationUtility
cc// HttpapplicationState
dd// Page
在aSP.NET中,下列关于session对象的说法正确的是(D)。(选择一项)
aa// 用户每次打开一个web页面,将会创建一个session对象
bb// 用户关闭客户端web页面后,session对象将立即消失
cc// 应用程序退出后,session对象的值才能消失
dd// 每个用户的Session对象不能被其他用户访问
在aSP.NET中,为了将当前页面跳转到一个相同目录下名为Main.htm的页面,下面方法正确的是(C)。(选择一项)
aa// Server.Execute(“Main.htm”);
bb// Servlet.Transfer(“Main.htm”);
cc// Response.Redirect(“Main.htm”);
dd// Response.Write(“Main.htm”);
某个用aSP。NET技术开发的网站拥有大量的访问量,最近该网经常因为服务器内存占用率过高而宕机,作为该网站技术员的你仔细检查了该网站的系统,发现内存占有率过高是因为每个用户都有大量数据保存在Session中,为了解决该问题你应该进行(C)处理。(选择一项)
aa// 将保存在Session中的数据保存在application中
bb// 将保存在Session中的数据保存在Cookie中
cc// 将Session中对安全性要求不高的数据保存在Cookie中,不经常使用的数据保存在数据库中
dd// 将Session中对安全性要求不高的数据保存在application中,不经常使用的数据保存在Cookie中
对于第三方在线文本编辑控件FreeTextBox,如果需要获取控件中录入文本的HTML代码,需要访问什么属性(A)(选择一项)
aa// Text
bb// HtmlText
cc// Value
dd// SelectText
有时候编辑过程中会出现如下的错误,如果要避免该错误,需要在Page页面指令上做何设置(D):(选择一项)
aa// EnableEventValidation="true"
bb// EnableEventValidation="false"
cc// ValidateRequest="true"
dd// ValidateRequest="false"
使用验证码生成控件Webvalidates,生成验证码的方法为(C):(选择一项)
aa// Generate()
bb// Initial()
cc// Create()
dd// Next()
CodeSmith中,脚本标签写法正确的是(B):(选择一项)
aa// <script runat=”server”></script>
bb// <script runat=”template”></script> 如果不添加会被视为普通文本
cc// <CodeTemplate runat=”server”></CodeTemplate>
dd// <CodeTemplate runat=”template”></CodeTemplate>
利用CodeSmith生成实体类的代码,对于DbType.Int32,应输出的类型为:(C)(选择一项)
aa// byte
bb// short
cc// int
dd// long
下面那种数据源控件适合于三层结构数据绑定(C)
aa// SqlDataSource
bb// accessDataSoure
cc// ObjectDataSoure
dd// XmlDataSoure
下面对于几种数据源控件说法错误的是(A)
aa// SqlDataSource数据源控件不能用于oracle数据库和access数据库。
bb// ObjectDataSource可以对业务对象或其他返回数据的类执行特定的数据访问。
cc// XmlDataSource可以对XML文档执行特定访问,包括物理访问和内存访问。
dd// SiteMapDataSource可以对站点地图提供程序所存储的Web站点执行特定的站点地图数据访问.
为绑定的行添加脚本事件的方法是什么(D)
aa// ItemDataBound
bb// DataBinding
cc// DataBound
dd// RowDataBound
DropDownList控件的哪个属性可获取当前选择的项(A)
aa// DropDownList.SelectedItem.Value
bb// DropDownList.SelectedItem.Text
cc// DropDownList.SelectedValue
dd// DropDownList.SelectedItem
Gridview控件的基类是(C)
aa// HierarchicalDataBoundControl
bb// ListControl
cc// CompositeDataBoundControl
dd// BaseGridriew
下面关于Eval和Bind的区别,说法不正确的是(B)
aa// Eval()方法是静态(只读)方法
bb// Eval方法没有Bind?方法访问速度快
cc// Bind?方法支持读/写功能,可修改回传服务器。
dd// Bind 方法不能格式化字符串
下面关于FileUpload控件说法不正确的是()
aa// 获取上传文件名的属性是FileUpload.PostedFile.FileName
bb// 获取上传文件大小的属性是FileUpload.PostedFile.ContentLength
cc// 获取上传文件类型的属性是FileUpload.PostedFile.ContentType
dd// 保存上传文件的方法是FileUpload.SevaAs
如果用户信息必须填写电话号码,使用那个验证控件(C)
aa// RequiredFieldValidator
bb// REgularExpression
cc// RequiredFieldValidator和regularExpression;
dd// CompareValidator和RequiredFieldValidator;
现在需要验证Textbox的输入数据为年龄,并且要求大于18,小于65应该使用的控件是(C)
aa// RequiredFieldValidator
bb// REgularExpression
cc// RequiredFieldValidator和RangeValidator
dd// CompareValidator和RequiredFieldValidator
ValidationSummary控件的作用是(B)
aa// 检查总和数
bb// 集中显示所有验证的结果
cc// 判断有无超出范围
dd// 检查数值大小
在VS中,下列说法错误的是: D
aa// 内置了轻量级的Web服务器
bb// 无须配置IIS、设置相应权限
cc// 内置了80多个控件
dd// 代码前置,逻辑分明
运行下列代码,如果当天是星期天,且用户输入“accp”(输入框TextBox的ID是txtName),则将输出(C)
string outPut="";
switch (DateTime.Now.DayOfWeek.ToString())
{
case "Saturday": outPut = ",Hi"; break;
case "Sunday": outPut = ",Ok"; break;
default: outPut = ",Bye"; break;
}
string message = string.Format(outPut,txtName.Text);
Response.Write(message);
aa// Hi
bb// Ok
cc// Bye
dd// 无输出
App_Data目录是用来放置(A)
aa// 专用数据文件
bb// 共享文件
cc// 被保护的文件
dd// 代码文件
VS创建Asp.net网站时自动生成的文件和目录有(BCD) 选择三项
aa// app_resource文件夹
bb// app_Data目录
cc// 扩展名为aspx和cs的文件
dd// Web.Config文件
现有用来做开发的生产机和用来做布署的服务器,关于开发布署发布网站说法正确的是:BC 选择二项
aa// 生产机必须安装IIS
bb// 服务器必须安装IIS
cc// 生产机必须安装Windows Server操作系统
dd// 服务器必须安装Windows Server操作系统
B/S典型应用有:BCD 选择三项
aa// 某酒店的内务管理
bb// 购物网站
cc// 个人博客
dd// 论坛
在开发三层结构的网站时,与数据表对应的实体类应写在(D)层
aa// 表示层
bb// 业务逻辑层
cc// 数据访问层
dd// 模型层
某个论坛上有这样的规定:在线时长不够100小时不能发贴,相关的代码应该写在(B)层
aa// 表示层
bb// 业务逻辑层
cc// 数据访问层
dd// 模型层
对于存储过程的调用,应该出现在(C)层
aa// 表示层
bb// 业务逻辑层
cc// 数据访问层
dd// 模型层
下列说法正确的是(AB) 选择二项
aa// 数据访问层要添加模型层的引用
bb// 业务逻辑层要添加数据访问层的引用
cc// 表示层要添加数据访问层业务逻辑层和模型层的引用
dd// 模型层要添加数据访问层的引用
⑸ asp.net sql语句性能问题
前辈不敢当,知道一点,按照你说的,当然是第2种查询快点,但是百万条数据谁用SQL语句?用存储过程你可以或得更高的效率更安全的程序,分页的话我以前也是自己写分页程序(因为datalist本来就不带分页),现在用一个比较出名的分页控件aspnetpage,用的人很多,个人经验,希望对你又帮助
⑹ asp.net 怎样调用其它网页的类
通用的类不是这样建立的,不要放在.aspx的后置文件中,而是新建-类文件
⑺ 在asp.net中aspnet_filter.dll文件和aspnet_isapi.dll文件的作用各是什么
这个文件是asp.net的处理文件,用于处理asp.net在iis中注册过扩展名的文件
比如默认的.aspx文件注册到aspnet_isapi.dll,这样用户访问.aspx文件时,服务器自动调用aspnet_isapi.dll来处理这个文件
⑻ ASP.NET是什么
ASP.NET是.NET FrameWork的一部分,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。 指 Active Server Pages(动态服务器页面) ,运行于 IIS(Internet Information Server 服务,是Windows开发的Web服务器)之中的程序 。
………………………………………………
如果对aspnet感兴趣,看看一个大专生怎么自学aspnet到找到工作。
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说 出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不 到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后 我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘 做技术的,可是处处碰壁。
一次偶然的机会,我才听到aspnet这个行业。那天我去新华书店,在计算机分类那边想找本书学习 。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习aspnet,然后给我介绍了一下 aspnet现在的火热情况,告诉我学aspnet多么的有前景,给我了一份传单,aspnet培训的广告。听了 她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下aspnet,确实是当今比较热门的行业,也是比较好找工作的,工资也是相 对比较高。我就下决心想学aspnet了。于是我去找aspnet培训的相关信息,说真的,我也很迷茫,我 不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在网络知道看到一篇让我很鼓舞的文章是一个aspnet高手介绍没有基础的朋友怎么自学入 门学aspnet,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实 在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会 我再去培训。
主意一定,我就去搜索aspnet的视频,虽然零星找到一些aspnet的视频,但是都不系统,我是想找 一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教, 不懂可以请教的。
后来我又找到一份很好的视频,是在IT学习联盟推出的一份视频《零基础aspnet就业班》(喜欢《 零基础aspnet就业班》的可以复制 sina.lt/bsjr 粘贴浏览器地址栏按回车键即打开)
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C#语言视频教程 学起,话说简单,其实我还是很多不懂的,只要重复多看几遍,就能看懂。C#语言我差不多学了一个礼 拜,接下来我就学了winform,SQL Server,html/css/javaScript,差不多也就三个礼拜。我每天都在不 停的写一些简单的代码,这样一月后我基本掌握了aspnet的全部基础。
接下来开始学习aspnet高级课程,老师幽默风趣而又轻松的课堂教课,使我发现原来学习aspnet并 不是一件很难的事情。之前我把aspnet基础学得还不错,到了到了aspnet高级部分,我觉不又不是很 难,可能老师太牛了,他能把复杂的问题讲的比较通俗易懂,有些难点的地方我还是连续看了五六次, 把他弄懂。每天下午6点下班后,吃了饭,马上跑回家。看视频,买了几本笔记本。当时,为了编程还花几百元了台二手的台式电脑,配置一般,但编程是足够的。一边看视频,一边记笔记,把重点都记下来,还一边跟着老师敲代码,为了能尽早学会aspnet。每天都坚持学5-6个小时。经常学到晚上一点多才睡觉。星期六,日不用上班,每天7点多起床,学到晚上11,12点。那段时间特别辛苦,特别累。在学习aspnet的三个多月里,除了吃饭睡觉工作,剩余的时间都在学习,因为我知道自己的计算机基础不是很好,也没有学过什么计算机,相对于那些科班的人来说我要比他们付出更多的努力。我只能咬紧牙关,坚持下去,我不能放弃,我要完成我的梦想,我要让我的家人过上好日子。终于三个多月后我把aspnet教程里的内容和项目都学完了,在学项目的过程中我发现项目特别重要,他能把你学过的知识全部联系起来,能更好的理解你所学的知识。还有学习过程中,动手很重要,要经常跟着老师动手敲,动手吧,跟着做,一行一行的跟着敲,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。 如果遇到暂时对于一些思路不能理解的,动手写,先写代码,慢慢你就会懂了。
于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是aspnet开发程序员,但我也比较满足,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
…………………………………………
⑼ 用什么方法获取aspnet_Users里的UserId
我一般是把这个UserId 和UserName 用某个分隔符串在一起,保存在登录的票据中。
用User.Identity.Name 获取以后,再拆分开,
当然,前提是,你使用的是Forms身份验证
⑽ Repeater存储过程AspNetPage
前台关键代码:<asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate></ItemTemplate> </asp:Repeater><Wuqi.Webdiyer:AspNetPager ID="page1" CssClass="quotes" runat="server" OnPageChanged="pager1_PageChanged" HorizontalAlign="Center" Width="100%"> </Wuqi.Webdiyer:AspNetPager>后台关键代码: protected void pager1_PageChanged(object src, EventArgs e) { BindData(page1.CurrentPageIndex); } private void BindData(int PageIndex, int AuditType) { int intRowCount = 0; Repeater1.DataSource = GetData(PageIndex, 5, ref intRowCount); Repeater1.DataBind(); page1.PageSize = 5; page1.RecordCount = intRowCount; }