當前位置:首頁 » 操作系統 » aspnet資料庫操作類

aspnet資料庫操作類

發布時間: 2023-06-19 08:39:13

❶ 在asp.net中JS怎樣操作資料庫

最好別使用js操作資料庫,js在源代碼裡面可以看到,別人不就知道你的資料庫信息了?還可以通過注入操作你的資料庫 如果最實在想用,參考例子 文件構成:
Access資料庫名為 MyData.Mdb, 裡面建了一個名為count的表,表由兩個欄位組成: ID和COUNT,表裡有一條數據: ('count','100')。 文本文件名為 count.txt,裡面隨便寫入一個數字。 靜態頁面名為Cnt.htm。
以上3個文件都放在同一目錄下。

由於採用Access資料庫,而它採用非標准sql語法,所以要注意在表名和欄位名上需要加方括弧: []

下面是頁面里的代碼:

其中getCountFromDB方法是對Access資料庫進行操作,getCountFromTxt方法是對txt純文本進行操作,這兩個方法都在本地執行通過。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="javaScript">
<!--
function getCountFromDB() {
//以當前頁面文件為基礎,找到文件所在的絕對路徑。
var filePath = location.href.substring(0, location.href.indexOf("Cnt.htm"));
var path = filePath + "MyData.mdb";
//去掉字元串中最前面的"files://"這8個字元。
path = path.substring(8);
var updateCnt = 0;

//生成查詢和更新用的sql語句。
var sqlSelCnt = "SELECT COUNT FROM [COUNT] WHERE ID = 'count'";
var sqlUpdCnt = "UPDATE [COUNT] SET [COUNT] = '";

//建立連接,並生成相關字元串 www.knowsky.com。
var con = new ActiveXObject("ADODB.Connection");
con.Provider = "Microsoft.Jet.OLEDB.4.0";
con.ConnectionString = "Data Source=" + path;

con.open;
var rs = new ActiveXObject("ADODB.Recordset");
rs.open(sqlSelCnt, con);
while (!rs.eof) {
var cnt = rs.Fields("COUNT");
document.write(cnt);
//將取得結果加1後更新資料庫。
updateCnt = cnt * 1 + 1;
rs.moveNext;
}
rs.close();
rs = null;

sqlUpdCnt = sqlUpdCnt + updateCnt + "'";
con.execute(sqlUpdCnt);

con.close();
con = null;
}

function getCountFromTxt() {
var filePath = location.href.substring(0, location.href.indexOf("Cnt.htm"));
var path = filePath + "count.txt";
path = path.substring(8);
var nextCnt = 0;

var fso, f1, ts, s;
//以只讀方式打開文本文件。
var ForReading = 1;
//以讀寫方式打開文本文件。
var ForWriting = 2;

fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile(path);
ts = f1.OpenAsTextStream(ForReading, true);
s = ts.ReadLine();
nextCnt = eval(s) + 1;
document.write("now count is :" + s);
ts.Close();

ts = f1.OpenAsTextStream(ForWriting, true);
ts.WriteLine(nextCnt);
ts.close();
}
//-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
getCountFromTxt();
//-->
</SCRIPT>
</BODY>
</HTML>

後記:雖然在只支持靜態頁面的免費空間不可用,但是我想一些支持Asp的免費空間應該能用,當然我沒有具體試過,只是憑自己想像。並且用這種方法來讀寫資料庫,只適合做計數器和留言版這樣的不需要保密性的工作,畢竟代碼全是用javascript寫成的,誰都可以看到,然後就可以得到路徑把db文件下載下來進行分析,所以沒辦法用它來保存一些不想讓別人知道的東西。就像我一個同事說的,用javascript連接資料庫進行操作,簡直就是霸王硬上弓,呵呵,的確如此,既然不能用在免費空間上作自己的計數器,那這段代碼就只能用來玩玩,自己找找良好感覺了。收集:

簡單的資料庫操作:<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
<script language=javascript>
function connectDb()
{
var ConnDB = new ActiveXObject("ADODB.Connection");
ConnDB.ConnectionString="dsn=shbxdatabase;uid=ldbx;pwd=123456;";
ConnDB.Open();
var Rs = new ActiveXObject("ADODB.Recordset");
var tempstr="";
Rs.Open("select * from WDA1",ConnDB,1,3);
while(!Rs.EOF)
{
tempstr = tempstr + Rs("TNAME") + "<br/>";
Rs.MoveNext;
}
test.innerHTML=tempstr;
}
</script>
</HEAD>
<BODY onbeforeunload="return 'ok?'"><P><div id=test> </div>
<P><INPUT id=button1 type=button value=顯示 name=button1 onclick="connectDb()"></BODY>
</HTML>
>>>>>>-------------------------------------var db="D:\\js\\9t\\db1.mdb";
function opendb(dbname,sql)
{
var opendb =new ActiveXObject("ADODB.Recordset")
opendb.ActiveConnection = "DBQ="+dbname+";DRIVER={Microsoft Access Driver (*.mdb)};"
opendb.Source = sql
opendb.CursorType = 1
opendb.CursorLocation = 2
opendb.LockType = 3
opendb.Open()
return opendb
}
var rs=new Object();
rs=opendb(db,"select * from 產品 where id="+i);
document.all.xx1.innerHTML=rs("生產廠商").value;
document.all.xx2.innerHTML=rs("產品名稱")+"/"+rs("型號");
document.all.xx3.innerHTML=rs("售價");
document.all.xx4.innerHTML=rs("批發");
document.all.xx5.innerHTML=rs("備注");
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<---------------------------------------
連接ACCESS只能用數據源,操作資料庫的方法跟ASP之類是一樣的。
只不過執行的語句不一樣罷了。
如:
String dbUrl = "sun.jdbc.odbc.JdbcOdbcDriver";
String dbConStr = "jdbc:odbc:dnsName";
Connection Conn = null;
Statement stmt = null;
try{
Class.forName(dbUrl);
}catch(ClassNotFoundException e){
System.err.println("Not Found ClassForName" + e.getMessage());
}
try{
Conn = DriverManager.getConnection(dbConStr, "uid", "pwd"); //連接資料庫,uid與pwd分別為 用戶名及密碼(連接資料庫的),如果沒有既為空
stmt = Conn.createStatement();
}catch(Exception e){
System.err.println("Can't Connect the DATA" + e.getMessage());
}
//以下為操作資料庫的
String sql = "select * from tableName[....]";
ResultSet Rs = stmt.executeQuery(sql); // 返回記錄集
String sqlUpdate = "update...";
String sqlInsert = "insert into....";
stmt.executeUpdate(sqlUpdate); //更新記錄
stmt.executeUpdate(sqlInsert); //插入記錄
Conn.close();
stmt.close();

❷ 什麼是資料庫操作類

資料庫操作類是自己寫的一個類,主要功能是對資料庫進行增刪查改。
在其他地方調用這個類中的增刪查改方法即可以操作資料庫。

❸ C#中如何定義資料庫操作類,並調用

以下是我編寫的一個操作access資料庫的類,其他資料庫可以參考修改,原理差不多的。希望對你有幫助。

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Configuration;
using System.Data;

namespace AutoEmailSender
{
/// <summary>
/// 資料庫交互類
/// </summary>
public class DB
{
/// <summary>
/// 獲得資料庫連接
/// </summary>
/// <returns></returns>
public static OleDbConnection GetDBConnection()
{
return new OleDbConnection(ConfigurationManager.AppSettings["ConnectString"]);
}

/// <summary>
/// 查詢結果集
/// </summary>
/// <param name="sql">執行語句</param>
/// <returns>返回一個DataTable對象</returns>
public static DataTable ExecuteDataTable(string sql)
{
using (OleDbConnection con = GetDBConnection())
{
OleDbCommand cmd = new OleDbCommand(sql, con);
return ExecuteDataTable(cmd);
}
}

/// <summary>
/// 查詢結果集
/// </summary>
/// <param name="cmd">執行語句的OleDbCommand命令</param>
/// <returns>返回一個DataTable對象</returns>
public static DataTable ExecuteDataTable(OleDbCommand cmd)
{
DataSet ds = new DataSet();
using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
{
try
{
da.Fill(ds);
}
catch (Exception e)
{
throw e;
}
}
if (ds.Tables.Count > 0)
{
ds.Tables[0].DefaultView.RowStateFilter = DataViewRowState.Unchanged | DataViewRowState.Added | DataViewRowState.ModifiedCurrent | DataViewRowState.Deleted;
return ds.Tables[0];
}
else
return null;
}

/// <summary>
/// 執行查詢,並返回查詢所返回的結果集中第一行的第一列。忽略其他列或行。
/// </summary>
/// <param name="sql">查詢語句</param>
/// <returns>返回結果集中第一行的第一列的object值</returns>
public static object ExecuteScalar(string sql)
{
using (OleDbConnection con = GetDBConnection())
{
OleDbCommand cmd = new OleDbCommand(sql, con);
return ExecuteScalar(cmd);
}
}

/// <summary>
/// 執行查詢,並返回查詢所返回的結果集中第一行的第一列。忽略其他列或行。
/// </summary>
/// <param name="cmd">查詢命令</param>
/// <returns>返回結果集中第一行的第一列的object值</returns>
public static object ExecuteScalar(OleDbCommand cmd)
{
try
{
cmd.Connection.Open();
object obj = cmd.ExecuteScalar();
cmd.Connection.Close();
return obj;
}
catch (Exception error)
{
cmd.Connection.Close();
throw error;
}
}

/// <summary>
/// 更新數據集
/// </summary>
/// <param name="dt">要更新的數據集</param>
/// <param name="insertCmd">插入SQL語句</param>
/// <param name="updateCmd">更新SQL語句</param>
/// <param name="deleteCmd">刪除SQL語句</param>
/// <returns></returns>
public static int UpdateDataSet(DataTable dt, OleDbCommand insertCmd, OleDbCommand updateCmd, OleDbCommand deleteCmd)
{
using (OleDbDataAdapter da = new OleDbDataAdapter())
{
da.InsertCommand = insertCmd;
da.UpdateCommand = updateCmd;
da.DeleteCommand = deleteCmd;
//da.UpdateBatchSize = 0; //UpdateBatchSize:指定可在一次批處理中執行的命令的數量,在Access不被支持。0:批大小沒有限制。1:禁用批量更新。>1:更改是使用 UpdateBatchSize 操作的批處理一次性發送的。
da.InsertCommand.UpdatedRowSource = UpdateRowSource.None;
da.UpdateCommand.UpdatedRowSource = UpdateRowSource.None;
da.DeleteCommand.UpdatedRowSource = UpdateRowSource.None;
try
{
int row = da.Update(dt);
return row;
}
catch (Exception e)
{
throw e;
}
}
}

/// <summary>
/// 返回一個查詢語句執行結果的表結構
/// </summary>
/// <param name="sql">查詢語句,不支持復雜SQL</param>
/// <returns></returns>
public static DataTable GetTableSchema(string sql)
{
sql = sql.ToUpper();
DataTable dt = null;
using (OleDbConnection con = GetDBConnection())
{
OleDbCommand cmd = new OleDbCommand(sql, con);
con.Open();
using (OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.KeyInfo | CommandBehavior.SchemaOnly | CommandBehavior.CloseConnection))
{
dt = dr.GetSchemaTable();
}
}
return dt;
}

/// <summary>
/// 根據輸入的查詢語句自動生成插入,更新,刪除命令
/// </summary>
/// <param name="sql">查詢語句</param>
/// <param name="insertCmd">插入命令</param>
/// <param name="updateCmd">更新命令</param>
/// <param name="deleteCmd">刪除命令</param>
public static void GenerateUpdateSQL(string sql, OleDbCommand insertCmd, OleDbCommand updateCmd, OleDbCommand deleteCmd)
{
sql = sql.ToUpper();
DataTable dt = GetTableSchema(sql);
string tableName = dt.Rows[0]["BaseTableName"].ToString();
List<OleDbParameter> updatePrimarykeys = new List<OleDbParameter>();//主鍵參數集合
List<OleDbParameter> deletePrimarykeys = new List<OleDbParameter>();//主鍵參數集合,因為不能同時被OleDbCommand個命令引用,所以多申明一個
List<OleDbParameter> insertFields = new List<OleDbParameter>();//欄位參數集合
List<OleDbParameter> updateFields = new List<OleDbParameter>();//欄位參數集合
string columns = string.Empty, values = "", set = "", where = "";
foreach (DataRow dr in dt.Rows)
{
if (dr["IsAutoIncrement"].ToString().Equals("False"))
{
insertFields.Add(new OleDbParameter("@" + dr["BaseColumnName"].ToString(),
(OleDbType)dr["ProviderType"],
Convert.ToInt32(dr["ColumnSize"]),
dr["BaseColumnName"].ToString()));
updateFields.Add(new OleDbParameter("@" + dr["BaseColumnName"].ToString(),
(OleDbType)dr["ProviderType"],
Convert.ToInt32(dr["ColumnSize"]),
dr["BaseColumnName"].ToString()));

if (!string.IsNullOrEmpty(columns))
columns += ",";
columns += dr["BaseColumnName"].ToString();
if (!string.IsNullOrEmpty(values))
values += ",";
values += "@" + dr["BaseColumnName"].ToString();
if (!string.IsNullOrEmpty(set))
set += ",";
set += dr["BaseColumnName"].ToString() + "=@" + dr["BaseColumnName"].ToString();
}
if (dr["IsKey"].ToString().Equals("True"))
{
updatePrimarykeys.Add(new OleDbParameter("@OLD_" + dr["BaseColumnName"].ToString(),
(OleDbType)dr["ProviderType"],
Convert.ToInt32(dr["ColumnSize"]),
ParameterDirection.Input,
Convert.ToBoolean(dr["AllowDBNull"]),
Convert.ToByte(dr["NumericScale"]),
Convert.ToByte(dr["NumericPrecision"]),
dr["BaseColumnName"].ToString(), DataRowVersion.Original, null));
deletePrimarykeys.Add(new OleDbParameter("@OLD_" + dr["BaseColumnName"].ToString(),
(OleDbType)dr["ProviderType"],
Convert.ToInt32(dr["ColumnSize"]),
ParameterDirection.Input,
Convert.ToBoolean(dr["AllowDBNull"]),
Convert.ToByte(dr["NumericScale"]),
Convert.ToByte(dr["NumericPrecision"]),
dr["BaseColumnName"].ToString(), DataRowVersion.Original, null));
if (!string.IsNullOrEmpty(where))
where += " and ";
where += dr["BaseColumnName"].ToString() + "=@OLD_" + dr["BaseColumnName"].ToString();
}
}

insertCmd.CommandText = string.Format("insert into {0} ({1}) values ({2})", tableName, columns, values);
updateCmd.CommandText = string.Format("update {0} set {1} where {2}", tableName, set, where);
deleteCmd.CommandText = string.Format("delete from {0} where {1}", tableName, where);
insertCmd.Connection = GetDBConnection();
updateCmd.Connection = GetDBConnection();
deleteCmd.Connection = GetDBConnection();
foreach (OleDbParameter pa in insertFields)
{
insertCmd.Parameters.Add(pa);
}
foreach (OleDbParameter pa in updateFields)
{
updateCmd.Parameters.Add(pa);
}
foreach (OleDbParameter pa in updatePrimarykeys)
{
updateCmd.Parameters.Add(pa);
}
foreach (OleDbParameter pa in deletePrimarykeys)
{
deleteCmd.Parameters.Add(pa);
}
}
}
}

❹ ASPNET怎樣調用一個存儲過程(帶參數的)

ASPNET怎樣調用一個存儲過程(帶參數的)使用的是Ado.NET中的相關的資料庫操作方法。
Ado.NET連接資料庫有以下幾個步驟:
1:使用配置的資料庫連接串,創建資料庫連接 Connection 對象
2:構建操作的sql語句
3:定義command對象
4:打開數據連接
5:執行命令
舉一個例子,刪除操作
public int DeleteStudent3(int stuID)
{

int result = 0;

using (SqlConnection connection = new SqlConnection(connString))
{
SqlCommand objCommand = new SqlCommand(dboOwner + ".usp_DeleteStudent", connection);
objCommand.CommandType = CommandType.StoredProcere;

objCommand.Parameters.Add("@stuID", SqlDbType.Int).Value = stuID;

connection.Open();
result = objCommand.ExecuteNonQuery();
}
return result;
}

❺ 請問一個asp,net的問題

我想通過例子你很快就會明白了:

<?xml version="1.0"?>
<!--
注意: 除了手動編輯此文件以外,您還可以使用
Web 管理工具來配置應用程序的設置。可以使用 Visual Studio 中的
「網站」->「Asp.Net 配置」選項。
設置和注釋的完整列表在
machine.config.comments 中,該文件通常位於
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
<add name="NorthwindConnectionString" connectionString="Data Source=8G4K5AU68FMJYV2\SQLEXPRESS;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=123456"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<anonymousIdentification enabled="true"/>

</system.web>
</configuration>

這個配置文件的內容很少,但是包括非常重要的一節:configuration ->connectionStrings>.請注意,Web.Config文件是以XML 格式存儲的,因此里邊的信息採用"樹型結構",就那上面來看,<connectionStrings />存儲於<configuration />結,因此<connectionStrings />就是<configuration />所要表述的成員之一,也就是說每一個結點都存儲應用程序的一些信息,而它們都是用過XML 屬性結構歸類的.我們要實現ASP.NET的應用程序的靈活性,很大程度上依賴了這些配置文件.舉一個簡單的例子:當我們在.ASPX文件中連接數據源時,需要先定義連接字元串,但是一套完整的應用程序包括很多數據源,也包括很多連接數據源的代碼,因此你必須考慮把這些連接字元串統一的管理,統一的調用,就像定義了一個"全局變數",隨時隨地,任何時間任何地點(程序集)都可以調用出來,當我們需要更改連接字元的時候,也只需要在"全局變數"中修改即可.呵呵,有沒有發現這個ASP.NET中最令人興奮的技術呢?那麼你就試試吧,下面是間單的例子:

class OleDb
{
public static void ConnectionDleDb()
{

using (OleDbConnection conn = new OleDbConnection(GetConnSring()))
{
OleDbCommand command = conn.CreateCommand();
command.CommandText = GetCommandString();
try
{
conn.Open();
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.Write("/t{0}/t{1}",reader[0],reader[1]);
Console.WriteLine("/n");
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw;
}
}
}
private static string GetConnSring()
{
ConnectionStringSettings settings =
ConfigurationManager.ConnectionStrings["NorthwindConnectionString"];
return (settings.ConnectionString);
}
private static string GetCommandString()
{
return (@"SELECT CategoryID, CategoryName FROM dbo.Categories;");
}
}

在這里,我們正好用到了Web.Config配置文件中的NorthwindConnectionString項,它存儲了我們定義的一個連接字元串,在類OleDb中,方法GetConnSring使用ConfigurationManager類將Web.Config配置文件中的值取出,ConfigurationManager類則是.NET公開所的,提供給程序員的Web.Config文件操作類,在.NET類庫中包含了很多實現類似功能的類,比如"成員資格提供程序","角色提供程序",它們與Web.Config配置文件配合組成了非常高效的應用程序管理機制.

以下是MSDN的相關文章:

---------------------------------------------------
使用 ASP.NET 配置系統的功能,可以配置整個伺服器上的所有 ASP.NET 應用程序、單個 ASP.NET 應用程序、各個頁面或應用程序子目錄。可以配置各種功能,如身份驗證模式、頁緩存編譯器選項、自定義錯誤、調試和跟蹤選項等等。

以下各節描述了 ASP.NET 配置系統的功能。

有關配置 .NET Framework 客戶端應用程序的信息,請參見配置應用程序。

注意
ASP.NET 配置系統的功能僅適用於 ASP.NET 資源。例如,Forms 身份驗證僅限制對 ASP.NET 文件的訪問,而不限制對靜態文件或 ASP(傳統型)文件的訪問,除非這些資源映射到 ASP.NET 文件擴展名。要配置非 ASP.NET 資源,應使用 Internet 信息服務 (IIS) 的配置功能。有關信息,請參見 Working with the IIS Metabase(使用 IIS 元資料庫)和 IIS Metabase Property Reference(IIS 元資料庫屬性參考)。

配置文件
ASP.NET 配置數據存儲在全部命名為 Web.config 的 XML 文本文件中,Web.config 文件可以出現在 ASP.NET 應用程序的多個目錄中。使用這些文件,可以在將應用程序部署到伺服器上之前、期間或之後方便地編輯配置數據。可以通過使用標準的文本編輯器、ASP.NET MMC 管理單元、網站管理工具或 ASP.NET 配置 API 來創建和編輯 ASP.NET 配置文件。

ASP.NET 配置文件將應用程序配置設置與應用程序代碼分開。通過將配置數據與代碼分開,可以方便地將設置與應用程序關聯,在部署應用程序之後根據需要更改設置,以及擴展配置架構。

有關如何對 ASP.NET 配置文件中的數據進行組織的更多信息,請參見 ASP.NET 配置文件。ASP.NET 配置設置 中描述了可用的配置設置。

配置文件層次結構和繼承
每個 Web.config 文件都將配置設置應用於它所在的目錄以及它下面的所有子目錄。可以選擇用子目錄中的設置重寫或修改父目錄中指定的設置。通過在 location 元素中指定一個路徑,可以選擇將 Web.config 文件中的配置設置應用於個別文件或子目錄。

ASP.NET 配置層次結構的根為 systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Web.config 文件,該文件包括應用於所有運行某一具體版本的 .NET Framework 的 ASP.NET 應用程序的設置。由於每個 ASP.NET 應用程序都從根 Web.config 文件那裡繼承默認配置設置,因此只需為重寫默認設置的設置創建 Web.config 文件。

注意
根 Web.config 文件從 Machine.config 文件那裡繼承一些基本配置設置,這兩個文件位於同一個目錄中。其中的某些設置不能在 Web.config 文件中被重寫。有關更多信息,請參見 ASP.NET 配置文件層次結構和繼承。

運行時,ASP.NET 使用 Web.config 文件按層次結構為傳入的每個 URL 請求計算唯一的配置設置集合。這些設置只計算一次,隨後將緩存在伺服器上。ASP.NET 檢測對配置文件進行的任何更改,然後自動將這些更改應用於受影響的應用程序,而且大多數情況下會重新啟動應用程序。只要更改層次結構中的配置文件,就會自動計算並再次緩存分層配置設置。除非 processModel 節已更改,否則 IIS 伺服器不必重新啟動,所做的更改即會生效。

有關 ASP.NET 配置層次結構的工作原理的更多信息,請參見 ASP.NET 配置文件層次結構和繼承和 ASP.NET 配置方案。

直接編輯配置文件
可以使用文本編輯器或 XML 編輯器來直接編輯配置文件。有關正確的語法,請參見 ASP.NET 配置設置和 常規配置設置 (ASP.NET) 中有關配置節的參考主題。有關更多信息,請參見編輯 ASP.NET 配置文件。

配置工具
使用 ASP.NET 配置系統所提供的工具來配置應用程序比使用文本編輯器簡單,因為這些工具包括錯誤檢測功能。

ASP.NET MMC 管理單元
用於 ASP.NET 的 Microsoft 管理控制台 (MMC) 管理單元提供一種在本地或遠程 Web 伺服器上的所有級別操作 ASP.NET 配置設置的方便途徑。ASP.NET MMC 管理單元使用 ASP.NET 配置 API,但是它通過提供一個圖形用戶界面 (GUI) 來簡化配置設置的編輯過程。另外,該工具還支持多個 ASP.NET 配置 API 功能,這些功能控制 Web 應用程序是否可以繼承設置,並管理配置層次結構各級別之間的依賴性。

注意
若要使用 ASP.NET MMC 管理單元,必須使用具有管理許可權的帳戶登錄到計算機。

ASP.NET MMC 管理單元在虛擬目錄的屬性頁上顯示為「ASP.NET」選項卡。

有關更多信息,請參見 ASP.NET MMC 管理單元。

網站管理工具
對網站具有管理許可權的任何人都可以使用網站管理工具來管理該網站的配置設置。網站管理工具旨在為各個網站中最常用的配置設置提供一個用戶友好的圖形編輯工具。由於網站管理工具使用基於瀏覽器的界面,因此它允許您遠程更改網站設置,這對於管理已經部署到成品 Web 伺服器的站點(如承載的網站)非常有用。

網站管理工具與 ASP.NET MMC 管理單元在若干方面存在不同。例如,ASP.NET MMC 管理單元最適於管理員級別的配置,因為它提供對 Web 伺服器上的整個配置文件層次結構的訪問,而不是提供對單個網站的配置設置的訪問。此外,您還必須是管理員才能使用 ASP.NET MMC 管理單元,而網站管理工具只允許各個網站所有者在他們具有管理許可權的站點的根目錄中配置 Web.config 文件。最後,您不能使用 ASP.NET MMC 管理單元來遠程管理 IIS,但是,網站管理工具的瀏覽器界面允許遠程配置 IIS 6.0 和更高版本的 IIS。

網站管理工具包括一個選項卡式界面,該界面在下列選項卡上對相關的配置設置進行分組:

「安全」選項卡,其中包含有助於保護 Web 應用程序資源並管理用戶帳戶和角色的設置。

「配置文件」選項卡,其中包含用來管理網站如何收集訪問者信息的設置。

「應用程序」選項卡,其中包含用來管理影響 ASP.NET 應用程序的配置元素的設置。

「提供程序」選項卡,其中包含用來添加、編輯、刪除、測試或分配應用程序提供程序的設置。

網站管理工具是隨 .NET Framework 2.0 版自動安裝的。有關該工具如何工作的信息,請參見 ASP.NET 網站管理工具。

命令行工具
.NET Framework 包括幾個執行特定配置操作的命令行工具。例如,使用 Aspnet_regiis.exe 工具,可以指定將哪個版本的 .NET Framework 應用於 ASP.NET 應用程序。有關更多信息,請參見 .NET Framework 工具。

ASP.NET 配置 API
ASP.NET 配置系統提供一個完整的託管介面,使用該介面,可以通過編程方式配置 ASP.NET 應用程序,而不必直接編輯 XML 配置文件。另外,ASP.NET 配置 API 還執行下列任務:

通過為配置層次結構中所有級別的數據提供一個集成視圖來簡化管理任務。

支持部署任務,包括創建配置和用一個腳本配置多台計算機。

為構建 ASP.NET 應用程序、控制台應用程序和腳本、基於 Web 的管理工具和 MMC 管理單元的開發人員提供單一的編程介面。

防止開發人員和管理員進行無效的配置設置。

允許您擴展配置架構。您可以定義新配置參數並編寫配置節處理程序以對它們進行處理。

提供從當前正在運行的應用程序獲取配置信息的靜態方法,以及從單獨的應用程序獲取配置信息的非靜態方法。使用靜態方法可以提高應用程序的運行速度,但是這些方法只能從您要獲取其配置數據的應用程序內部使用。

有關更多信息,請參見 ASP.NET 配置 API。

配置安全性
ASP.NET 配置系統有助於防止未經授權的用戶訪問配置文件。ASP.NET 將 IIS 配置為拒絕任何瀏覽器訪問 Machine.config 或 Web.config 文件。對於試圖直接請求配置文件的任何瀏覽器,都返回 HTTP 訪問錯誤 403(禁止)。

另外,將禁止一個 ASP.NET 應用程序中的配置文件訪問其他 ASP.NET 應用程序中的配置設置,除非您的配置應用程序在完全信任模式下以對其他應用程序中的配置文件具有讀取許可權的帳戶運行。

有關更多信息,請參見保證 ASP.NET 配置的安全和使用受保護的配置加密配置信息。

❻ ASP.NET入門教程 7.1 資料庫

在開始學習ASPNET 數據控制項之前 讓我們先考慮一下數據源 數據大致上可以分為 類 關系型數據(relational data)根據範式規則組織成一系列的表 Microsoft Access Micrasoft SQL Server Oracle SAP DB 和MySQL中的數據都屬於這種類型 第二種類型的數據以樹型結構存儲 例如XML文件 Windows注冊表和Windows文件系統 最後一種類型數據的形式非常多 例如Excel文件 文本文件或私有格式 本教程(與絕大多數Web站點的數據交互一樣)討論關系型數據和XML文件

關系型資料庫將信息分割到表(table)中 而表包含了記錄(record 也稱為行) 一條記錄代表著表的主題的一個實例 每張表包含多個欄位(field) 也稱為列 它們按類型組織數據 例如 一張員工的表中可以包含每個員工的記錄 該表的列可能是NameFirst NameLast DateOfHire等等 對於每條記錄 每一列都有一個記錄的值 大多數管理系統中的資料庫由一組表組成 在Microsoft SQL Server中 一個或多個資料庫一起形成伺服器的一個實例 它也是本書中使用的資料庫 一般情況下 表中只包含數據 怎樣組織數據的描述信息 欄位的名稱以及各種限制都存放在資料庫中一個稱為元數據(metadata)的獨立結構中

XML文件不同於關系型資料庫 首先 它不是使用表 而是將數據存放在帶有分支的樹中 分支保存的數據越來越細化 每個數據集合以及單個數據都包含在節點中 例如 XML文件Employees中有一個Employees節點 表示樹型結構的主幹 接著對每個員工設置一個分支 在這個分支中將有FirstName LastName等分支 其次 XML文件是自描述的 因為元數據和數據存放在一起 每個信息都有一個HTML標記 該標記相當於一個容器 對所包含的數據進行描述 例如 數據 John 實際將保存為<NameFirst>John</NameFirst> 雖然自描述符會使XML文件增大 但它使得在沒有元數據信息的情況下能容易地理解數據

幾乎所有的數據源都有某種系統控制數據的使用許可權 安全上的第一個問題是驗證 系統在這里判斷是誰要求使用數據 關於驗證的話題在第 章中己經詳細介紹過 因此這里不再花費過多時間進行討論 一般地 有兩種類型的驗證 Windows Authentication(也稱為Trusted Security)和SQL Authentication 使用哪種驗證是在安裝資料庫的時候決定的 對於SQL Server Express 可以選擇Windows Authentication或Mixed 後者意味著可以使用Windows Authentication或SQL Authentication a SQL Server Express在安裝時默認選擇Mixed Authentication 本書默認使用Windows Authentication

本教程主要使用Microsoft的SQL Server 該產品以不同的功能集出售 但對於我們最簡單版本(SQL Server Express)的功能就足夠了 幸運的是 Microsoft免費提供SQL ServerExpress 而且可以按照本書給出的指令自動安裝SQL Server Express的好處在於 當您希望將自己的站點部署給公眾訪問的時候 所有的代碼都不需要修改就可以直接移植到功能完整的SQL Server中

一旦通過驗證(證明自己就是自己聲稱的人) 在使用數據時將有一組許可權和限制 首先是查看數據的限制 資料庫管理員(DBA)通常會限制直接訪問表 取而代之 您可能只能通過某個視圖或查詢查看包含一定欄位或記錄的數據 其次 您可能會遇到怎樣修改數據的限制 或者能否修改數據的限制 最後 即使可以修改數據 也存在數據可以怎樣修改的限制(稱為約束) 以使用Wrox United為例 一般情況下不能刪除在賽程表中的某個球隊(這樣就會使賽程表存在著邏輯上的錯誤 造成某些比賽沒有兩個球隊參加)

lishixin/Article/program/net/201311/14515

熱點內容
怎麼在電腦上配置WEB伺服器 發布:2025-03-21 21:41:32 瀏覽:744
圖片上傳中 發布:2025-03-21 21:41:32 瀏覽:81
造夢西遊ol腳本修改視頻 發布:2025-03-21 21:40:43 瀏覽:294
imagegrabpython 發布:2025-03-21 21:35:45 瀏覽:93
javaexcel數據導入資料庫中 發布:2025-03-21 21:30:00 瀏覽:120
小嶽嶽訪問 發布:2025-03-21 21:15:41 瀏覽:93
sql代碼格式化 發布:2025-03-21 21:14:52 瀏覽:629
c語言實現數據結構的演算法 發布:2025-03-21 14:35:55 瀏覽:414
androidphp最佳實踐pdf 發布:2025-03-21 14:33:44 瀏覽:728
哪裡下安卓版60秒 發布:2025-03-21 14:32:06 瀏覽:291