久久机这里只有精品,国产69精品一区二区亚洲孕妇,91精品国产综合久久婷婷香蕉,午夜久久久久久电影

最新活動:電腦PC端+手機端+微網站+自適應網頁多模板選擇-建站388元起價?。。?
當前位置:主頁 > 網站建設 > 編程經驗點滴 動態SQL的拼接技巧建站知識

編程經驗點滴 動態SQL的拼接技巧建站知識

時間:2023-05-24 00:05:24 閱讀: 文章分類: 網站建設 作者: 網站編輯員

導讀:1建站知識眾多人在回復,其中至少有三位老兄,誤解了動態 SQL 的拼接。特寫此文,闡述一下其中的技巧。希望能糾正初學者的個業網站建設公司網站推廣優化seo。

個業網站建設公司網站推廣優化seo常見的誤解有: 1. 只用 ado.net ,無法進行動態 SQL 拼接。 2. 有幾個動態參數,代碼的重復量就成了這些參數的不同數量的組合數,動態參數越多,重復量越大。 對于第二個問題,以下的錯誤代碼為其證據:

復制代碼 代碼如下:

if(id>0 && string.IsNullOrEmpty(name)) { command.CommandText = "select * from t1 where id=?"; command.Parameters.Add(id); } if(id<=0 && !string.IsNullOrEmpty(name)) { command.CommandText = "select * from t1 where name=?"; command.Parameters.Add(name); } if(id<=0 && !string.IsNullOrEmpty(name)) { command.CommandText = "select * from t1 where id=? and name=?"; command.Parameters.Add(id); command.Parameters.Add(name); }

這兩個問題都很好解決,給一個正確的代碼例子大家看看即可:

復制代碼 代碼如下:

string sql ="select * from t1 where 1=1"; if(id != null) { sql += " and id=?"; addParameterValue(cmd,id); } if(!string.IsNullOrEmpty(name)) { sql += " and name=?"; addParameterValue(cmd,name); } command.CommandText = sql;

這里的技巧在于,使用了一個 "where 1=1", 巧妙解決了后續 sql 高端網站建設拼接中,每行開頭是否要有 "and" 的問題。而這個 "where 1=1",并不會對數據庫的索引執行,造成性能上的影響。 對參數進行排列組合,然后寫各種組合的 SQL,這個思路很奇怪。問題是,很多初學者,都有這個思維習慣。本人不是計算機科班出身,不知道是否哪本教科書,就是如此教導的。但很不幸的是,這個思維習慣是錯誤的。 "where 1=1" 雖是教科書中沒有的小技巧,卻很管用。 另外,在程序中,一般會在用戶界面上讓使用用戶錄入數字,這個數字的數值,在代碼中會自動變成 string,然后嘗試 string 轉換成 int/long,最后送到 sql 函數里。這里需要特別注意的是,很多人把某個特殊的數值,作為“用戶無錄入的默認值”,正如本文開頭所寫的錯誤代碼那樣:

復制代碼 代碼如下:

if(id>0 && string.IsNullOrEmpty(name))

問題在于,0 是否是不正常的業務數值,代碼中看不出來。不排除程序員隨意指定一個數值,作為“用戶無錄入的默認值”,如果不巧這個默認值,實際上是有其他意義的,那就造成問題。 在數據庫的理論中,沒有指定的數據,是用 null 來表示的,不論是 string 還是 int/long。 這是一個很好的思路,同樣可以用在這里的 sql 拼接中。因此,我們在后面的代碼中,使用了這個:

復制代碼 代碼如下:

if(id != null)

上述代碼中, addParam網站優化seo培訓eterValue(cmd,name); 是一個簡單封裝的函數,用來封裝如下一小段代碼,目的是讓最后的代碼,較為簡捷直觀:

關鍵詞標簽: 標簽 SQL 點滴

聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-24 ,文章編程經驗點滴 動態SQL的拼接技巧建站知識主要講述點滴,標簽,SQL網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_6238.html

我的IDC 網站建設技術SEOUC.COM
專注網站建設,SEO優化,小程序設計制作搭建開發定制網站等,數千家網站定制開發案例,網站推廣技術服務。
  • 5000+合作客服
  • 8年從業經驗
  • 150+覆蓋行業
  • 最新熱門源碼技術文章

    主站蜘蛛池模板: 临清市| 奉新县| 平罗县| 磐安县| 苍南县| 平远县| 凤台县| 太湖县| 五家渠市| 杨浦区| 绥芬河市| 平泉县| 张家口市| 长沙市| 理塘县| 灵丘县| 德令哈市| 平定县| 南江县| 河南省| 蛟河市| 昌黎县| 广元市| 津市市| 甘德县| 宁德市| 宁河县| 格尔木市| 海阳市| 瑞昌市| 平潭县| 凉山| 益阳市| 招远市| 上虞市| 仁怀市| 通化县| 应用必备| 株洲县| 个旧市| 邓州市|