• <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)  編輯 收藏 引用
            精品人妻伦一二三区久久| 91精品国产91热久久久久福利| 精品精品国产自在久久高清| 97久久国产露脸精品国产| 色综合久久久久无码专区| 久久综合亚洲色一区二区三区| 亚洲精品美女久久久久99小说| 午夜精品久久久久久久无码| 久久亚洲天堂| 区久久AAA片69亚洲| 亚洲va国产va天堂va久久| 国产精品美女久久久m| 久久免费小视频| 理论片午午伦夜理片久久 | 国产精品视频久久| 国产精品久久国产精品99盘| 色偷偷888欧美精品久久久| 久久久久久久综合日本| 狠狠色丁香婷婷久久综合五月| 久久亚洲精品无码AV红樱桃| 亚洲一本综合久久| 国产精品久久久久影院嫩草| 国产精品嫩草影院久久| 国产99久久九九精品无码| 久久久91人妻无码精品蜜桃HD| 久久久久国色AV免费看图片| 色欲av伊人久久大香线蕉影院| 色综合久久中文综合网| 久久久久无码中| 日韩欧美亚洲国产精品字幕久久久| 精品久久久久久中文字幕大豆网| 久久精品黄AA片一区二区三区| 久久精品夜色噜噜亚洲A∨| 久久综合国产乱子伦精品免费| 国产女人aaa级久久久级| 97精品依人久久久大香线蕉97| 精品免费久久久久国产一区| 久久婷婷成人综合色综合| 久久久久亚洲国产| 久久精品国产72国产精福利| 国产精品一区二区久久精品|