• C#开发学习——SqlHelper的应用


    使用App.config配置文件封装连接字符串,方便重复使用
    --->添加App.conifg配置文件
    --->Add : ConnectionString:
    --->添加引用

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
      <connectionStrings>
        <add name="conStr" connectionString="Data Source=.;Initial Catalog=;User ID=;Password="/>
      </connectionStrings>
    </configuration>

    封装一个SQLHelper类方便使用

      1 using System.Configuration;
      2 using System.Data;//DatSet..Table SqlDataAdapter
      3 using System.Data.SqlClient;//SqlConnection Command DataReader
      4 namespace Common
      5 {
      6     public class SqlHelper
      7     {
      8         //连接字符串
      9         //1、添加引用 2、导入命名空间 为了使用ConfigurationManager
     10         private static string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
     11 
     12        //增删改查
     13         //查找数据  ExecuteScalar()返回首行首列   ExecuteReader()  DataTable
     14 
     15 
     16         /// <summary>
     17         /// 返回DataTable
     18         /// </summary>
     19         /// <param name="sql">所用的sql语句</param>
     20         /// <param name="param">可变,可以传参也可以不传参数</param>
     21         /// <returns></returns>
     22         public static DataTable ExecuteDataTable(string sql, params SqlParameter[] param)
     23         {
     24             DataTable dt = new DataTable();
     25             using (SqlConnection con = new SqlConnection(conStr))
     26             {
     27                 using (SqlDataAdapter adapter = new SqlDataAdapter(sql, con))
     28                 { 
     29                     //添加参数
     30                     adapter.SelectCommand.Parameters.AddRange(param);
     31                     //1.打开链接,如果连接没有打开,则它给你打开;如果打开,就算了
     32                     //2.去执行sql语句,读取数据库
     33                     //3.sqlDataReader,把读取到的数据填充到内存表中
     34                     adapter.Fill(dt);
     35                 }
     36             }
     37             return dt;
     38         }
     39 
     40         /// <summary>
     41         /// 执行查询,返回首行首列
     42         /// </summary>
     43         /// <param name="sql"></param>
     44         /// <param name="param"></param>
     45         /// <returns></returns>
     46         public static object ExecuteScalar(string sql, params SqlParameter[] param)
     47         {
     48             object o = null;
     49             using (SqlConnection con = new SqlConnection(conStr))
     50             {
     51                 using (SqlCommand cmd = new SqlCommand(sql, con))
     52                 {
     53                     cmd.Parameters.AddRange(param);
     54                     con.Open();
     55 
     56                     o = cmd.ExecuteScalar();
     57                 }
     58             }
     59             return o;
     60         }
     61 
     62 
     63         /// <summary>
     64         /// 执行查询,返回SqlDataReader对象
     65         /// </summary>
     66         /// <param name="sql"></param>
     67         /// <param name="param"></param>
     68         /// <returns></returns>
     69         public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] param)
     70         {
     71             SqlDataReader reader = null;
     72             using (SqlConnection con = new SqlConnection(conStr))
     73             {
     74                 using (SqlCommand cmd = new SqlCommand(sql, con))
     75                 {
     76                     cmd.Parameters.AddRange(param);
     77                     con.Open();
     78 
     79                     reader = cmd.ExecuteReader();
     80                 }
     81             }
     82             return reader;
     83         }
     84 
     85         /// <summary>
     86         /// 执行增删改,返回受影响的行数
     87         /// </summary>
     88         /// <param name="sql"></param>
     89         /// <param name="param"></param>
     90         /// <returns></returns>
     91         public static int ExecuteNonQuery(string sql, params SqlParameter[] param)
     92         {
     93             int n = -1;
     94             using (SqlConnection con = new SqlConnection(conStr))
     95             {
     96                 using (SqlCommand cmd = new SqlCommand(sql, con))
     97                 {
     98                     cmd.Parameters.AddRange(param);
     99                     con.Open();
    100                     n = cmd.ExecuteNonQuery();
    101                 }
    102             }
    103             return n;
    104         }
    105 
    106     }
    107 }
    C#namespace: 是为了防止命名重复的 。
    比如你在两个不同的命名空间中都可以有Student类。
    此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法。
     
     下面这个是应用sqlHelperComboBox来展示 省市联动
     
     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                //在应用程序加载的时候 ,去数据库查找省的数据,给cboPro
                DataTable dt = SqlHelper.ExecuteDataTable("select * from promary");
                //将返回的DataTable作为cboPro的数据源
                //让cboPro显示proName这个字段的值,一般是显示给客户看的
                cboPro.DisplayMember = "proName";
                //让valueMemberID,绑定的是对应的值,绑定处理程序标识  给程序员看的。
                cboPro.ValueMember = "proID";
                cboPro.DataSource = dt;
            }
    
            private void cboPro_SelectedIndexChanged(object sender, EventArgs e)
            {
                //之前的写法
                //  MessageBox.Show(cboPro.Text);//获得在cbo中选择文本
                //MessageBox.Show(cboPro.SelectedValue.ToString());//获得关联的数据
    
                //string sql = "select * from city where proID="+cboPro.SelectedValue.ToString();
                //带参数的sql语句
                string sql = "select * from city where proID=@proID";
                //准备一个sql参数
                SqlParameter p = new SqlParameter("@proID", cboPro.SelectedValue.ToString());
                //设置cboCity要显示的数据
                cboCity.DisplayMember = "cityName";
                //根据sql语句查询到的数据集
                cboCity.DataSource = SqlHelper.ExecuteDataTable(sql, p);
            }
        }
  • 相关阅读:
    hdu 2200 Eddy's AC难题(简单数学。。)
    hdu 2201 熊猫阿波的故事(简单概率。。)
    hdu 2571 命运(水DP)
    hdu 2955 Robberies(背包DP)
    GDI+图形图像技术1
    C#笔记2__Char类、String类、StringBuilder类 / 正则表达式 /
    C#笔记1__命名空间 / 常量 / object / is、as、...?... :...
    VS2013快捷键及技巧 / 智能插件
    JAVA笔记15__TCP服务端、客户端程序 / ECHO程序 /
    JAVA笔记14__多线程共享数据(同步)/ 线程死锁 / 生产者与消费者应用案例 / 线程池
  • 原文地址:https://www.cnblogs.com/mengxiao/p/6273820.html
Copyright © 2020-2023  润新知