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; }