黑马程序员_ADO.Net(配置文件的两种写法与使用方法,手动编写SqlHelper类)

来源:互联网 发布:python的全局变量 编辑:程序博客网 时间:2024/05/01 18:53

一.配置文件的两种写法与使用方法

<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修饰,这是一个封装的习惯

    {

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

        //封装方法的原则:把不变的放在方法里,把变化的放在参数中

        //编写公用的方法

          ///////////////////简化版本,能精确判读除了传过来有Sql语句参数,参数数组长度是否为0///////////

        /////长度可变参数,这样可以判断串过来的参数是否匹配,精确找到自己所对应的方法,完美的结合了(只传Sql语句,参数数组为0;又传Sql语句,又传参数数组,还不用再调用的时候定义数组)了以上两种方式

        /////调用者如果不传,则数组长度为0params(必须放在最后一位,其他的都匹配完成,余下的都放在该数组)

        //ExecuteNonQuery :执行非查询语句,并返回受影响的行数;

        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(数组名)整体添加参数

                    cmd.Parameters.AddRange(paramenters);

                    //对连接执行T-Sql非查询语句并返回受影响的行数

                    return cmd.ExecuteNonQuery();

                }

            }

        }

        //ExecuteScalar:执行查询语句,返回数据集的第一行第一列

        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);

                    //对连接执行T-Sql查询语句,并返回结果集的第一行第一列

                    return cmd.ExecuteScalar();

                }

            }

        }

        ////ExecuteDataTable:执行查询语句,返回数据集,存放在客户端

        //查询数据集不多的时候使用最合适,一般的系统数据集都不大

        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];

                }

            }

        }

界面后台代码如何调用:

 //使用可变参数方法(传递Sql语句,参数数组长度为0

        private void button2_Click(object sender, RoutedEventArgs e)

        {

            //不用长度可变参数,调用起来比较麻烦

            string pwd=(string)SqlHelper.ExecuteScalar("select UserPwd  from T_User where UserName='jinpeng'");//带不带参数使用的都是同一种方法,这里等于说是参数数组长度为0

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

            MessageBox.Show(pwd);

        }

 //使用可变参数方法(传递Sql语句,参数数组)

        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) });

            //使用可变参数,好处是,不用重新定义参数数组,自己赋值就OK

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

            MessageBox.Show("该用户的密码是:"+pwd);

        }

0 0
原创粉丝点击