一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

黑馬程序員

 北方的白樺林 2017-08-12

一.配置文件的兩種寫法與使用方法

<configuration>

  <appSettings>

    <add key="ConnectionString" value="server=.;database=ADO.NET;uid=sa;pwd=***"/>

  </appSettings>

  <connectionStrings>

    <add name="ConStr" connectionString="server=.;database=ADO.net;uid=sa;pwd=***"/>

  </connectionStrings>

</configuration>

使用方法:添加配置文件,添加引用System.comfiguration

  //public string con=System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];

       public string con=System.Configuration.ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;

二.編寫SqlHelper

namespace 自己編寫SqlHelper

{

    class SqlHelper////寫類的時候,盡量不使用Public修飾,這是一個封裝的習(xí)慣

    {

        private static string connStr = System.Configuration.ConfigurationManager.AppSettings["SqlConnString"];

        //封裝方法的原則:把不變的放在方法里,把變化的放在參數(shù)中

        //編寫公用的方法

          ///////////////////簡化版本,能精確判讀除了傳過來有Sql語句參數(shù),參數(shù)數(shù)組長度是否為0///////////

        /////長度可變參數(shù),這樣可以判斷串過來的參數(shù)是否匹配,精確找到自己所對應(yīng)的方法,完美的結(jié)合了(只傳Sql語句,參數(shù)數(shù)組為0;又傳Sql語句,又傳參數(shù)數(shù)組,還不用再調(diào)用的時候定義數(shù)組)了以上兩種方式

        /////調(diào)用者如果不傳,則數(shù)組長度為0,params(必須放在最后一位,其他的都匹配完成,余下的都放在該數(shù)組)

        //ExecuteNonQuery :執(zhí)行非查詢語句,并返回受影響的行數(shù);

        public static int ExecuteNonQuery(string sql, params SqlParameter[] paramenters)

        {

            using (SqlConnection conn = new SqlConnection(connStr))

            {

                conn.Open();

                using (SqlCommand cmd = conn.CreateCommand())

                {

                    cmd.CommandText = sql;

                    //AddRange(數(shù)組名)整體添加參數(shù)

                    cmd.Parameters.AddRange(paramenters);

                    //對連接執(zhí)行T-Sql非查詢語句并返回受影響的行數(shù)

                    return cmd.ExecuteNonQuery();

                }

            }

        }

        //ExecuteScalar:執(zhí)行查詢語句,返回數(shù)據(jù)集的第一行第一列

        public static object ExecuteScalar(string sql, params SqlParameter[] parameters)

        {

            using (SqlConnection conn = new SqlConnection(connStr))

            {

                conn.Open();

                using (SqlCommand cmd = conn.CreateCommand())

                {

                    cmd.CommandText = sql;

                    cmd.Parameters.AddRange(parameters);

                    //對連接執(zhí)行T-Sql查詢語句,并返回結(jié)果集的第一行第一列

                    return cmd.ExecuteScalar();

                }

            }

        }

        ////ExecuteDataTable:執(zhí)行查詢語句,返回數(shù)據(jù)集,存放在客戶端

        //查詢數(shù)據(jù)集不多的時候使用最合適,一般的系統(tǒng)數(shù)據(jù)集都不大

        public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)

        {

            using (SqlConnection conn = new SqlConnection(connStr))

            {

                conn.Open();

                using (SqlCommand cmd = conn.CreateCommand())

                {

                    cmd.CommandText = sql;

                    cmd.Parameters.AddRange(parameters);

                    SqlDataAdapter sda = new SqlDataAdapter(cmd);

                    DataSet ds = new DataSet();

                    sda.Fill(ds);

                    return ds.Tables[0];

                }

            }

        }

界面后臺代碼如何調(diào)用:

 //使用可變參數(shù)方法(傳遞Sql語句,參數(shù)數(shù)組長度為0

        private void button2_Click(object sender, RoutedEventArgs e)

        {

            //不用長度可變參數(shù),調(diào)用起來比較麻煩

            string pwd=(string)SqlHelper.ExecuteScalar("select UserPwd  from T_User where UserName='jinpeng'");//帶不帶參數(shù)使用的都是同一種方法,這里等于說是參數(shù)數(shù)組長度為0

            //string pwd = (string)SqlHelper.ExecuteScalar("select UserPwd  from T_User where UserName='jinpeng'", new SqlParameter[0]);

            MessageBox.Show(pwd);

        }

 //使用可變參數(shù)方法(傳遞Sql語句,參數(shù)數(shù)組)

        private void button4_Click(object sender, RoutedEventArgs e)

        {

            

            string username = this.txt_UserName.Text.Trim();

            //string pwd=(string)SqlHelper.ExecuteScalar("select UserPwd from T_User where UserName=@name",new SqlParameter[]{new SqlParameter("name",username) });

            //使用可變參數(shù),好處是,不用重新定義參數(shù)數(shù)組,自己賦值就OK

            string pwd=(string)SqlHelper.ExecuteScalar("select UserPwd from T_User where UserName=@name",new SqlParameter("name",username));

            MessageBox.Show("該用戶的密碼是:"+pwd);

        }

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美乱视频一区二区三区| 日本一本在线免费福利| 中文字日产幕码三区国产| 精品人妻一区二区四区| 在线九月婷婷丁香伊人| 丰满熟女少妇一区二区三区| 在线观看视频国产你懂的| 人妻巨大乳一二三区麻豆| 国产精品刮毛视频不卡| 久久这里只有精品中文字幕| 夜色福利久久精品福利| 国产精品内射婷婷一级二级| 美女被后入视频在线观看| 男人大臿蕉香蕉大视频| 久久精品国产亚洲av麻豆| 五月情婷婷综合激情综合狠狠| 久久福利视频在线观看| 国产精品午夜性色视频| 这里只有九九热精品视频| 久久热九九这里只有精品| 国产欧美高清精品一区| 久久精品国产第一区二区三区| 精品人妻久久一品二品三品| 午夜福利激情性生活免费视频| 亚洲中文字幕在线观看黑人| 国产精品免费福利在线| 国产欧美一区二区久久| 欧美日韩精品久久亚洲区熟妇人| 人体偷拍一区二区三区| 日韩精品中文字幕在线视频| 日本加勒比不卡二三四区| 欧美中文字幕日韩精品| 欧美日韩久久精品一区二区| 精品香蕉国产一区二区三区| 久草国产精品一区二区| 自拍偷拍一区二区三区| 毛片在线观看免费日韩| 国产精品一区二区视频| 91亚洲国产成人久久精品麻豆| 人妻久久一区二区三区精品99| 亚洲精品成人福利在线|