CSharp之使用SqlHelper类 *** 作SqlServer,省市连动

CSharp之使用SqlHelper类 *** 作SqlServer,省市连动,第1张

概述1.前台界面 2.后台代码 2.1封装后的SqlHelper using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; using System.Data.SqlClient; namespace _04省市联动 {     pu


1.前台界面

2.后台代码

2.1封装后的sqlHelper

using System;

using System.Collections.Generic;

using System.linq;

using System.Text;

using System.Configuration;

using System.Data.sqlClIEnt;


namespace _04省市联动

{

    public class sqlHelper

    {

        //读取连接字符串

        private static Readonly string str = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;


        //三个方法

        /// <summary>

        /// 此方法可以做增删改

        /// </summary>

        /// <param name="sql">SQL语句</param>

        /// <param name="ps">SQL语句中的参数</param>

        /// <returns>返回受影响的行数,int类型</returns>

        public static int ExecuteNonquery(string sql,sqlParameter[] ps)

        {

            //连接数据库

            using (sqlConnection con=new sqlConnection(str))

            {

                using (sqlCommand cmd=new sqlCommand(sql,con))

                {

                    con.open();

                    if (ps!=null)

                    {

                        cmd.Parameters.AddRange(ps);

                    }

                    

                    return cmd.ExecuteNonquery();

                }

                

            }

        }


        /// <summary>

        /// 该方法用在查询上

        /// <returns>返回首行首列</returns>

        public static object ExecuteScalar(string sql,sqlParameter[] ps)

        {

            using (sqlConnection con=new sqlConnection(str))

            {

                using (sqlCommand cmd=new sqlCommand(sql,con))

                {

                    con.open();

                    if (ps!=null)

                    {

                        cmd.Parameters.AddRange(ps);

                    }

                    return cmd.ExecuteScalar();


                }

            }

        }

        /// <summary>

        /// 该方法用于查询读取数据

        /// </summary>

        /// <param name="sql">SQL语句</param>

        /// <param name="ps">SQL语句中的参数</param>

        /// <returns>返回的是sqlDataReader对象,里面有数据</returns>

        public static sqlDataReader ExecuteDataReader(string sql,params sqlParameter[] ps)

//Params是C#中的关键字,采用此关键字可以指定参数数目为可变;在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字

        {

            sqlConnection con=new sqlConnection(str);

            using (sqlCommand cmd=new sqlCommand(sql,con))

            {

                if (ps!=null)

                {

                    cmd.Parameters.AddRange(ps);

                }

                try

                {

                    con.open();

                    //此时sqlDataReader不能加using,否则reader对象会被释放掉,无法返回

                    return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);//返回sqlDataReader对象,并关闭对应的sqlConnection对象

                                                                                         


                }

                catch (Exception ex)

                {

                    con.Close();

                    con.dispose();     //如果发生异常,手动释放

                    throw ex;

                }

            }

        }

    }

}


2.2主窗体后台代码

namespace _04省市联动

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }



        private int r = 0;

        private voID Form1_Load(object sender,EventArgs e)

        {

            r = 1;

            //加载省份信息

            LoadAreaByAreAPId(0);

        }


            //所有省份显示到第一个下拉框中

        private voID LoadAreaByAreAPId(int v)

        {

            List<Area> List=new List<Area>();

            List.Add(new Area() {AreaID = -1,Areaname = "---请选择---"});

            string sql = "select AreaID,Areaname from TblArea  where AreAPId="+v;

            using (sqlDataReader reader=sqlHelper.ExecuteDataReader(sql))

            {

                if (reader.HasRows)

                {

                    while (reader.Read())

                    {

                        Area a=new Area();

                        a.AreaID = Convert.ToInt32(reader["AreaID"]);

                        a.Areaname = reader["Areaname"].ToString();

                        List.Add(a);

                    }

                }

            }

            if (r==1)

            {

                cbPro.DataSource = List;

                cbPro.displayMember = "Areaname";

                cbPro.ValueMember = "AreaID";

            }

            if(r==2)

            {

                cbCity.DataSource = List;

                cbCity.displayMember = "Areaname";

            }

        }



       //当省份下拉框文本改变时,加载对应的城市信息

        private voID cbPro_SelectedindexChanged(object sender,EventArgs e)

        {

            #region 练习用的代码

            //if (cbPro.Selectedindex != 0)

            //{

            //    cbCity.Items.Clear();

            //    //获取当前省份的ID

            //    int ID = Convert.ToInt32(cbPro.SelectedValue);

            //    string sql = "select AreaID,Areaname from TblArea where AreAPId=" + ID;

            //    //List<Area> List = new List<Area>();

            //    using (sqlDataReader reader = sqlHelper.ExecuteDataReader(sql))

            //    {

            //        if (reader.HasRows)

            //        {

            //            while (reader.Read())

            //            {

            //                Area a = new Area();

            //                a.AreaID = Convert.ToInt32(reader["AreaID"]);

            //                a.Areaname = reader["Areaname"].ToString();

            //                cbCity.Items.Add(a);  //重写了Area类的ToString()方法   public overrIDe string ToString()

                                                                 //否则添加的是类的命名空间          {

                                                                                                                               return this.Areaname;

                                                                                                                        }

            //            }

            //        }

            //    }



            //} 

            #endregion



            #region 简化写法,使用r变量判断事件

            r = 2;

            if (cbPro.Selectedindex != 0)

            {

                int ID = Convert.ToInt32(cbPro.SelectedValue);

                LoadAreaByAreAPId(ID);

            } 

            #endregion

        }

    }

}

欢迎关注趣味CSharp,完整笔记与您分享~~~~~~~~

总结

以上是内存溢出为你收集整理的CSharp之使用SqlHelper类 *** 作SqlServer,省市连动全部内容,希望文章能够帮你解决CSharp之使用SqlHelper类 *** 作SqlServer,省市连动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166944.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存