• <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)  編輯 收藏 引用
            久久国产精品99久久久久久老狼| 日本WV一本一道久久香蕉| 成人国内精品久久久久一区| 精品久久久久久国产91| 国产女人aaa级久久久级| 中文字幕乱码人妻无码久久| 亚洲一本综合久久| 伊人久久综合精品无码AV专区| 国产精品久久久久aaaa| 久久午夜免费视频| 国产成人久久精品二区三区| 久久综合香蕉国产蜜臀AV| 一本久道久久综合狠狠躁AV| 99re这里只有精品热久久 | 国产V综合V亚洲欧美久久| 久久婷婷人人澡人人| 欧美黑人又粗又大久久久 | 国产69精品久久久久777| 久久久久亚洲国产| 国产精品成人精品久久久| 久久亚洲欧美国产精品| 久久91精品国产91| 一本久道久久综合狠狠躁AV| 久久成人精品| 久久精品一区二区三区中文字幕 | 香蕉久久夜色精品升级完成| 亚洲国产综合久久天堂| 亚洲精品成人网久久久久久| 久久久久九国产精品| 久久国产精品免费| 久久成人18免费网站| 久久国产精品一区| 精品久久久久国产免费| 久久人人超碰精品CAOPOREN| 韩国三级中文字幕hd久久精品| 9191精品国产免费久久| 激情久久久久久久久久| 久久久国产亚洲精品| 久久精品国产99久久久古代| 亚洲综合熟女久久久30p| 久久精品一本到99热免费|