這個禮拜的工作又接近尾聲了,該測試的測試了,該提交發布的發布了,今天工作又停下來了,沒有什麼新的需求了,好好學習,天天向上,首先還是表達一下此時的心情,很高興今天和老婆坐一趟公交去上班,因為她要換工作,去浦東坐936,我上班也可坐那車,剛好一起咯,第一次哦,很高興,很激動,呵呵,希望今天老婆能把浦東的那家公司搞定,然後一起搬到浦東去就好了,我每天就做地鐵上班了,呵呵。羅嗦一大堆,開始學習:
ADO.NET在我們做項目的時候是必不可少的,裡面的內容也是龐大之極,簡單的聊聊入門的吧,以ASP.NET為準哦,
先要匯入命名空間:using System.Data.SqlClient;,緊跟著就是SqlConnection類也出來了,SqlCommand也來了,還有好多好多....
使用資料庫的時候先要開啟串連不咯,
using (SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=pubs"))
{
string str="insert /update /delete ................";//這個str就是要執行的SQL語句
SqlCommand cmd = new SqlCommand(str,conn);
conn.open();
cmd.ExecuteNonQuery();
conn.close();
}
當然這樣的寫法有很多,但是結合一些效能考慮,在做一些小的比較簡單的項目中我比較能接受的是這種,開啟串連後及時關閉串連,在需要操作資料庫的時候才去開啟串連,盡量避免資源的浪費和對伺服器造成的壓力,當然這樣還一個安全方面的缺陷咯,這個後面再說吧,這裡繼續說說SqlCommand 這個類的對象有幾個主要的方法:
ExecuteNonQuery():方法執行不返回結果的命令,通常使用它執行插入、刪除、更新操作。
ExecuteScalar方法執行返回單個值的命令,像我們平時驗證登入呀,檢查某條資訊是否存在的時候就可以這樣:
SqlCommand cmd = new SqlCommand(“select count(*) from users where uid='Teracy' and pwd='Teracy'”, Conn);
ExecuteReader()方法來擷取資料,用的相對比較少,看下面一段代碼來說明問題吧,
private void SQLCommandExec(string queryStr,
string conn)
{
using (SqlConnection con = new SqlConnection(
conn))
{
SqlCommand command = new SqlCommand(queryStr, con);
con.Open();
SqlDataReader dr =
command.ExecuteReader(CommandBehavior.CloseConnection);
StringBuilder sb = new StringBuilder();
while (dr.Read())
{
sb.Append(dr["pub_name"] + " " + dr["city"] + "<br>");
}
Response.Write(sb.ToString());
con.close();
}
}
當然這個ADO.NET還有很多東西,這裡一下也沒有那麼多時間多,還一個常用的就是 DataReader和DateSet的區別就是:
前者是只進唯讀方式讀取資料,後者就功能強大了,但是也是要付出資源消耗的代價的,還有個問題就是上面說的寫SQL語句的安全性考慮,我就拿段代碼來給參考參考吧,現在來了個新需求,我要開始工作了。
1 public static bool UpdateUserPwd(int CustomerSysNo, uid)
2 {
3 string updateSql = @"Update Users set
4 pwd=@pwd where
5 id =@uid";
6 SqlParameter[] parms = new SqlParameter[]
7 {
8 new SqlParameter("@pwd", SqlDbType.varchar),
9
10 new SqlParameter("@uid", SqlDbType.Int),
11
12
13 };
14 parms[0].Value = pwd;
15 parms[1].Value = uid;
16
17 return DataAccessFacade.ExecSqlCommand(updateSql, parms) > 0;
18 }
大家一起好好研究看看吧,這些都是我的理解,可能有些不足,以供參考吧,Begin.............................工作了
表達能力被老婆打擊得不敢開口說話,用代碼錶示一下,請見諒;SqlCommand 也就主要常用這幾個方法,記得以前剛剛出來的時候常常有人考我這樣的問題,呵呵,現在好像沒有人問這些問題了哦,