zoukankan      html  css  js  c++  java
  • 【ADO.NET】6、SQLHelper简单封装

    using System.Data.SqlClient;
    using System.Configuration;
    引用:System.Configuration
    连接字符串放到配置文件中

    新建一个类,写如下些方法,进行数据的操作

    // ExecuteNonQuery 构建
    public static int ExecuteNonQuery(string sql,params SqlParameter[] parameters)
    {
        string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(Str))
        {
        conn.Open();
        using (SqlCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = sql;
            foreach (SqlParameter par in parameters)
            {
            cmd.Parameters.Add(par);
            }
            return cmd.ExecuteNonQuery();
        }
        }
        
    }
    
    // ExecuteNonQuery 方法的使用
    private void button1_Click(object sender, EventArgs e)  //单击事件
    {
        try
        {
        SQLHelper.ExecuteNonQuery("insert into T_Age(Name,Age) values(@N,@A)", new SqlParameter("@N", txtLogin.Text.Trim()), new SqlParameter("@A", txtAge.Text.Trim()));
         MessageBox.Show("插入成功!");
        }
        catch (Exception ex)
        {
        MessageBox.Show(string.Format("插入失败!:{0}", ex));           
         return;
        }
    }
    
    //-----------------------------------------------------------------------------
    // ExecuteScalar 构建
    public static object ExeccuteScalar(string sql, params SqlParameter[] parameters)
    {
        string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(Str))
        {
        conn.Open();
        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = sql;
        foreach (SqlParameter par in parameters)
         {
            cmd.Parameters.Add(par);
         }
         return cmd.ExecuteScalar();
        }
    }
    
    // ExecuteScalar 方法的使用
    private void button2_Click(object sender, EventArgs e)  //单击事件
    {
       int i = Convert.ToInt32(SQLHelper.ExeccuteScalar("select count(*) T_phone"));
       MessageBox.Show(Convert.ToString(i));
    }
    //-----------------------------------------------------------------------------
    
    // ExecuteReader 构造 // 不能使用 using
    public static SqlDataReader SqlDataReader(string sql, params SqlParameter[] parameters)
    {
        string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
        SqlConnection conn = new SqlConnection(Str);
        conn.Open();
        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = sql;
        foreach (SqlParameter par in parameters)
        {
          cmd.Parameters.Add(par);
        }
        SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        cmd.Parameters.Clear();
        return dr;
    }
    
    // ExecuteReader 方法的使用
    private void button4_Click(object sender, EventArgs e)  //单击事件
    {
      SqlDataReader dr = SQLHelper.SqlDataReader_using("select * from T_Age");
      while (dr.Read())
      {
          MessageBox.Show(Convert.ToString(dr["Name"]));  //读取Name字段的值
      }   
    }
    
    //-----------------------------------------------------------------------------
    // ExecuteDataSet 的构建
    public static DataTable ExecuteDataSet(string sql, params SqlParameter[] SqlParmeter)
    { 
         string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
         using (SqlConnection conn = new SqlConnection(Str))
         {
         conn.Open();
         SqlCommand cmd = conn.CreateCommand();
         cmd.CommandText = sql;
         foreach (SqlParameter par in SqlParmeter)    //遍历增加 SqlParmeter 参数
         {    
             cmd.Parameters.Add(par);
         }
         DataSet dataset = new DataSet();
         SqlDataAdapter adapter = new SqlDataAdapter(cmd);
         adapter.Fill(dataset);
         return dataset.Tables[0];
         }
    }
    
    // ExecuteDataSet 方法的使用
    private void button5_Click(object sender, EventArgs e)
    {
        DataTable dt = SQLHelper.ExecuteDataSet("select * from T_Age");
        for (int i = 0; i < dt.Rows.Count; i++)
        {
        DataRow row = dt.Rows[i];
        string name =Convert.ToString(row["Name"]);
        MessageBox.Show(name);
        }
    }
    
    //-----------------------------------------------------------------------------
    注意:SqlDataReader如果用 using 的话,将执行不了,因为在读取数据的时候是在using以外,无法读取
          如下是错误的代码 
    
    public static SqlDataReader ExecuteReader_using(string sql, params SqlParameter[] parameters)
    {
        string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(Str))
        {
        conn.Open();
        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = sql;
        foreach (SqlParameter par in parameters)
        {
            cmd.Parameters.Add(par);
        }
        return cmd.ExecuteReader();
        }
    } 
    //-----------------------------------------------------------------------------
  • 相关阅读:
    几个常用myeclipse快捷键
    5G layer
    customize the entry point of pod runtime
    关于JS Pormise的认识
    修改 /etc/pam.d/login, linux 本地账号密码无法登陆,一直返回 登陆的login界面
    Java支付宝PC网站支付功能开发(详细教程)
    支付宝PC支付功能异步通知签名验证失败解决方案
    提交代码出现 Push to origin/master was rejected 错误解决方法
    易语言连接RCON详细教程实例(演示连接Unturned服务器RCON)
    易语言调用外部DLL详细实例教程
  • 原文地址:https://www.cnblogs.com/xgao/p/4135160.html
Copyright © 2011-2022 走看看