資料庫的一點點小東西

來源:互聯網
上載者:User
這個禮拜的工作又接近尾聲了,該測試的測試了,該提交發布的發布了,今天工作又停下來了,沒有什麼新的需求了,好好學習,天天向上,首先還是表達一下此時的心情,很高興今天和老婆坐一趟公交去上班,因為她要換工作,去浦東坐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 也就主要常用這幾個方法,記得以前剛剛出來的時候常常有人考我這樣的問題,呵呵,現在好像沒有人問這些問題了哦,

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.