• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-18  評論-11  文章-12  trackbacks-0

                  本文總結項目中數據庫操作相關的一些經驗教訓,特別是最近一周以來的。項目集成時,數據庫出過幾次莫名奇妙的錯誤,而我自己,也因為數據庫表設計不當,而屢嘗苦果。

            一、數據讀取

                  常用兩種方法從數據庫讀取數據。1. 直接讀取。使用SqlConnection建立一個數據庫連接con,將con和查詢語句select封裝到一個SqlCommand對象command中,并使用SqlAdapter對這個command進行包裝,包裝后得到適配器對象da,使用da.fill()函數,將查詢結果讀到DataSet中。

                 2. 使用存儲過程。將查詢語句保存到存儲過程中,以后每次調用數據庫中的存儲過程。本質上,這種方式和1相同,但將cmd.CommandType = CommandType.StoredProcedure,然后SqlAdapter將會去數據庫中查找相應的存儲過程,而不是1中的直接使用select查詢語句。

                  對于第2種方式,可以將數據讀到DataSet中,然后再對DataSet直接操作。或者使用dataReader = cmd.ExecuteReader();將數據對到DataReader中,然后再從DataReader將數據保存到業務類中。

            二、表、視圖、存儲過程

                  1. 在設計表的時,應考慮完備。比如備用字段、字段長度等因素。

                   2. 視圖并不能帶來效率的改善,但可以很好地讓邏輯更清晰。

                   3. 存儲過程不應該存在調用關系。否在在集成時,極易出錯。

                    4.   盡量將數據庫連接參數寫道web.config里,而不是直接寫在程序中。

            源代碼1
            public static int GetQueryList(string strQuery,out DataSet details)
               {
               
                SqlConnection con = null;
                string select = strQuery;
                details = new DataSet();
               
                try
                {
                 if (con == null)
                 {
                  con = new SqlConnection(ConfigurationSettings.AppSettings["HrsConnectionString"]);
                  con.Open();
                 }
                 SqlCommand cmd = new SqlCommand(select, con);;
                 DataSet dsTemp = new DataSet();
                 SqlDataAdapter da = new SqlDataAdapter(cmd);
                 da.Fill(dsTemp);
                 details = dsTemp;
                
                }
                catch(Exception e)
                {  
                 ComLog.ErrSet("","","EplCheckHistory.cs[GetQueryList()]",e.TargetSite.ToString() + e.Message);
                 details = null;
                 return 3;
                }
                finally
                {
                 if (con != null)
                 {
                  con.Close();
                  con.Dispose();
                  con = null;
                 
                 }
                }
                return 0;
               }


            類別:項目回顧 查看評論
            文章來源:http://hi.baidu.com/hawkingliu/blog/item/b42a9e2b757e17ffe6cd40d4.html
            posted on 2008-04-21 22:01 ronliu 閱讀(161) 評論(0)  編輯 收藏 引用
            亚洲午夜精品久久久久久浪潮 | 日韩一区二区久久久久久| 久久国产视屏| 午夜精品久久久久久影视riav| 伊人热热久久原色播放www| 久久综合伊人77777麻豆| 久久精品国产亚洲精品2020| 久久精品国产WWW456C0M| 国产精品成人久久久| 国产精品内射久久久久欢欢| 欧美伊人久久大香线蕉综合| 精品久久久久久无码专区| 中文字幕亚洲综合久久菠萝蜜| 伊人久久综合精品无码AV专区 | 日本人妻丰满熟妇久久久久久| 久久天天躁狠狠躁夜夜2020老熟妇| 久久精品国产亚洲av麻豆蜜芽| 久久久91人妻无码精品蜜桃HD| 麻豆精品久久久久久久99蜜桃| 国产精品美女久久久网AV| 久久99精品久久久久久hb无码| 亚洲精品99久久久久中文字幕| 国产精品久久久久久久久免费| 久久狠狠高潮亚洲精品| 久久久精品国产Sm最大网站| 国产精品青草久久久久婷婷 | 精品无码人妻久久久久久| 伊人久久大香线蕉精品| 国产成人精品久久二区二区| 久久精品国产AV一区二区三区| 国内精品久久久久久中文字幕| 久久香蕉综合色一综合色88| 久久久噜噜噜久久中文福利| 亚洲中文字幕无码一久久区 | 国内精品久久久久影院日本| 亚洲伊人久久综合影院| 精品人妻伦九区久久AAA片69| 久久综合综合久久狠狠狠97色88 | 久久久久高潮毛片免费全部播放 | 久久久久久无码Av成人影院| 蜜臀av性久久久久蜜臀aⅴ|