国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

c#中sqlhelper類(lèi)的編寫(xiě)(二)

2019-11-17 02:35:25
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

c#中sqlhelper類(lèi)的編寫(xiě)(二)

  上一篇文章講了簡(jiǎn)易版的SqlHelper類(lèi)的編寫(xiě),我們?cè)谶@里就上一篇文章末尾提出的問(wèn)題寫(xiě)出解決方案.

  sql語(yǔ)句注入攻擊已經(jīng)是眾所周知的了.我們?nèi)绾卧贑#中保護(hù)自己的數(shù)據(jù)庫(kù)不被這樣的方式攻擊呢?

  不用擔(dān)心,c#中已經(jīng)提供了很好的解決方案,那就是 SqlParameter類(lèi).

  如何使用它呢?

  

class SqlHelper{public object ExecuteScalar(string sql,Parameter [] parameters)//這一這里增加了一個(gè)參數(shù),是個(gè)Parameter類(lèi)型的數(shù)組.  using(SqlConnection conn = new SqlConnection(connStr))   {    conn.Open();    using(SqlCommand cmd = conn.CreateCommand())    {      cmd.CommandText = sql;      foreach( Parameter param  in parameters)//遍歷傳進(jìn)來(lái)的數(shù)組,把元素一一添加到查詢中      {        cmd.Parameters.add(param);      }      SqlDataAdapter adapter = new SqlDataAdapter(cmd);//數(shù)據(jù)適配器把查詢作為自己的一個(gè)屬性      DataSet dataset = new DataSet();//建立緩存      adapter.Fill(dataset);//把數(shù)據(jù)存放到緩存中.      return dataset;//返回?cái)?shù)據(jù)集合    }   }}

  上面的例子使用了Parameter類(lèi)的方法,完成對(duì)SQL語(yǔ)句的保護(hù).防止了SQL注入.

  但是還有一點(diǎn),在方法中我們定義了一個(gè)數(shù)組作為參數(shù),那如果用戶傳進(jìn)來(lái)的不只是一個(gè)數(shù)組呢?

  這時(shí)候就要用到可變長(zhǎng)度參數(shù)這個(gè)概念的東西了.

  可變長(zhǎng)度參數(shù)的定義方式:

static int sum(int[] arr)//這是一個(gè)簡(jiǎn)單的固定參數(shù)長(zhǎng)度的函數(shù)定義.{  int sum = 0;  foreach(int i in arr)  {    result += i;  }  return result;}static int sum1(param int[] arr)//這是一個(gè)簡(jiǎn)單的可變參數(shù)長(zhǎng)度的函數(shù)定義{  int result = 0;  foreach(int i in arr)  {    result += i;  }  return result;}static void Main(string[],args){  int[] array1 = new int[]{1,2,3,4,5};  sum(array1);//我們用固定參數(shù)長(zhǎng)度方法,必須傳一個(gè)數(shù)組進(jìn)去  sum1(2,4,6,8,10);//我們用可變參數(shù)長(zhǎng)度方法,可以隨便傳數(shù)字進(jìn)去,函數(shù)會(huì)自動(dòng)把他們加入到自己的數(shù)組參數(shù)中.}

  今天先寫(xiě)到這里.可變長(zhǎng)度參數(shù)在SqlHelper里的具體使用,我會(huì)在下一篇文章里講解.

  


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 仁化县| 丹江口市| 井冈山市| 扎兰屯市| 黄石市| 嘉定区| 新乐市| 胶南市| 平阳县| 兴仁县| 呼图壁县| 隆回县| 渑池县| 巫溪县| 凭祥市| 县级市| 济阳县| 五台县| 亚东县| 西充县| 浙江省| 承德市| 镇赉县| 宁陕县| 明水县| 临桂县| 新竹市| 湄潭县| 邯郸县| 龙口市| 余干县| 泌阳县| 呼和浩特市| 资中县| 富顺县| 灯塔市| 武功县| 固阳县| 东兰县| 栾川县| 民权县|