我们老师要我们编程时把SQL语句都写到Config文件中,象这样:
<configuration>
<appSettings>  
       <add key="DataConnectionString" value="Data Source=localhost;Provider=SQLOLEDB;Database=StoreHouse;User ID=sa;Password="/> 
       <add key="TyBindString" value="select Module from PurModule"/> 
然后就可以把象delete等数据库操作都写到一个类中的涵数内,然后就可以通过把写在Config文件中的
SQL语句当参数传过去操作!象add key="TyBindString" value="select Module from PurModule"/>
这样的还行,但如果后面有Where...怎么办了?比如 <add key="TyBindString" value="select Module from PurModule where ~~~ = ~~~ "/>。
有人说可用参数,具体代码又是什么了?
请高手们帮忙解决下!

解决方案 »

  1.   

    奇怪,为什么要把sql语句写到config里面,这不是在虐待.net吗?
      

  2.   

    你老師這樣的要求出發點是好的。這樣寫的好處是業務規則發生變化時,只需要去修改配置文件就可以了。我做過這樣一個項目,要求通過一些條件查詢到不同的報表。我的做法是:先在系統注冊這樣查詢條件。並注冊相關的條件組合。用戶只要選擇不同的條件組合就可以查詢到不同的報表。因為這樣查詢報表也是一條SQL語句或者一個存儲過程。我們在數據庫配置好這些SQL語句或者存儲過程。系統就可以查詢到報表了。即使今后要增加報表,也不需要再寫程序了。
      

  3.   

    但我看到了你上面的配置文件,系統存在一個很大的安全隱患,數據庫連接字符串和SQL語句(表名)都放在一個地方。那是不是太危險?如果配置文件被別人知道了怎麼辦?因為只要知道這些,別人就可以輕而易舉地攻擊你的數據庫,或者隨意修改你數據庫里的內容。
    建議做法是:數據庫連接字符串加密﹔數據庫連接字符串和SQL語句分別存放在不同的配置文件(表里)