• <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久久久国产精免费| 久久夜色精品国产噜噜亚洲a | 久久精品毛片免费观看| 99久久99这里只有免费费精品| 久久99热狠狠色精品一区| 国内精品欧美久久精品| 亚洲国产精品无码久久| 日韩精品无码久久一区二区三| 蜜臀久久99精品久久久久久小说| 久久精品国产亚洲Aⅴ香蕉| 久久国产免费观看精品3| 性做久久久久久免费观看| 天天爽天天爽天天片a久久网| 久久亚洲国产精品成人AV秋霞| 国产农村妇女毛片精品久久| 久久精品国产第一区二区三区| 亚洲欧美成人久久综合中文网| 国产精品欧美久久久久天天影视| 久久久噜噜噜久久熟女AA片| 99久久精品免费看国产一区二区三区 | 久久av无码专区亚洲av桃花岛| 最新久久免费视频| 欧洲精品久久久av无码电影| 国产农村妇女毛片精品久久| 麻豆精品久久精品色综合| 午夜精品久久久久久中宇| 亚洲国产精品无码久久青草| 久久亚洲私人国产精品vA| 2021精品国产综合久久| 免费精品国产日韩热久久| 亚洲精品无码久久不卡| 久久久久久A亚洲欧洲AV冫 | 国产精品无码久久久久| 久久久久一区二区三区| 99久久精品午夜一区二区| 91久久婷婷国产综合精品青草| 777米奇久久最新地址| 久久久久久久99精品免费观看| 亚洲综合精品香蕉久久网97| 国产成人香蕉久久久久| 久久有码中文字幕|