• <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 閱讀(171) 評論(0)  編輯 收藏 引用
            久久精品中文騷妇女内射| 亚洲欧美日韩精品久久亚洲区 | 久久久国产精品福利免费| 久久精品成人免费网站| 一级做a爰片久久毛片毛片| 久久精品99久久香蕉国产色戒| 久久免费精品视频| 亚洲午夜久久久影院| 久久精品国产一区二区电影| 亚洲午夜久久久影院| 久久久久国产一级毛片高清板| 色欲久久久天天天综合网 | 亚洲精品国产成人99久久| 亚洲精品国产综合久久一线| 久久国产一区二区| 三上悠亚久久精品| 麻豆久久久9性大片| 理论片午午伦夜理片久久| 精品久久久久久久无码| 怡红院日本一道日本久久| 久久久久人妻一区精品性色av | 99精品国产99久久久久久97 | 精品亚洲综合久久中文字幕| 亚洲国产精品成人久久| 少妇久久久久久被弄到高潮| 久久久久中文字幕| 国产成人精品久久免费动漫| 久久发布国产伦子伦精品| 麻豆精品久久久久久久99蜜桃| 久久亚洲av无码精品浪潮| 久久精品无码专区免费| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区| 中文国产成人精品久久不卡| 伊人久久大香线蕉AV色婷婷色| 狠狠色丁香久久婷婷综合图片| 亚洲午夜精品久久久久久app| 久久精品国产精品亚洲艾草网美妙| 久久精品国产精品亜洲毛片 | 人妻无码精品久久亚瑟影视| 久久国产精品偷99| 亚洲婷婷国产精品电影人久久 |