zoukankan      html  css  js  c++  java
  • SqlHelper分享

    using Model;
    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace DAL
    {
        public static class SqlHelper
        {
            //public static string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString.ToString();
            public static string conStr = "server=***;uid=sa;pwd=******;database=TripMaster";
            
            /// <summary>
            /// 用一个sql语句和可变的SQLParameter数组增删改数据库的数据并且返回受影响的行数,当受影响行数为0时返回的是负数
            /// </summary>
            /// <param name="cmdStr">sql语句</param>
            /// <param name="sqlParams">params形的变量数组</param>
            /// <returns>返回受影响的行数</returns>
            public static int ExecuteNonQuery(string cmdStr, params SqlParameter[] sqlParams)
            {
                using (SqlConnection con = new SqlConnection(conStr))
                {
                    using (SqlCommand cmd = new SqlCommand(cmdStr, con))
                    {
                        if (sqlParams != null)
                        {
                            cmd.Parameters.AddRange(sqlParams);
                        }
                        con.Open();
                        return cmd.ExecuteNonQuery();
    
                    }
                }
            }
    
            /// <summary>
            /// 使用一个sql语句来查找数据库,返回查找数据的第一行第一列的数据
            /// </summary>
            /// <param name="cmdStr">sql语句</param>
            /// <param name="sqlParams">params形式的SqlParameters数组</param>
            /// <returns>返回所查找信息第一行第一列的数据,类型未知,所以用object接收</returns>
            public static object ExecuteScalar(string cmdStr, params SqlParameter[] sqlParams)
            {
                using (SqlConnection con = new SqlConnection(conStr))
                {
                    using (SqlCommand cmd = new SqlCommand(cmdStr, con))
                    {
                        if (sqlParams != null)
                        {
                            cmd.Parameters.AddRange(sqlParams);
                        }
                        con.Open();
                        return cmd.ExecuteScalar();
    
                    }
                }
            }
    
            /// <summary>
            /// 使用一个sql语句查找数据返回一个dataTable;
            /// </summary>
            /// <param name="cmdStr">sql语句</param>
            /// <param name="sqlParams">params形式的SqlParameter数组</param>
            /// <returns>返回一张表DataTable</returns>
            public static DataTable ExecuteDataTable(string cmdStr, params SqlParameter[] sqlParams)
            {
                using (SqlConnection con = new SqlConnection(conStr))
                {
                    using (SqlCommand cmd = new SqlCommand(cmdStr, con))
                    {
                        con.Open();
                        if (sqlParams != null)
                        {
                            cmd.Parameters.AddRange(sqlParams);
                        }
                        using (SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd))
                        {
                            DataTable dt = new DataTable();
                            dataAdapter.Fill(dt);
                            return dt;
                        }
                    }
    
                }
            }
    
            /// <summary>
            /// 使用一个sql语句查找数据库信息,返回一个SqldataReader,封装这一个方法时要注意,cmd是可以关闭的,
            /// 而适配器在读取数据的时候con是不能关闭的
            /// 所以要在适配器的创建里面加上参数System.Data.CommandBehavior.CloseConnection,
            /// 这个参数的意思是当适配器关闭的时候顺便也关闭con,就是con直到不再从数据库读取数据时才可以关闭
            /// </summary>
            /// <param name="cmdStr">sql语句</param>
            /// <param name="sqlParams">params形式的SqlParameters数组</param>
            /// <returns>返回一个SqlDatareader可以进行读取数据</returns>
            public static SqlDataReader ExecuteReader(string cmdStr, params SqlParameter[] sqlParams)
            {
                SqlConnection con = new SqlConnection(conStr);
                using (SqlCommand cmd = new SqlCommand(cmdStr, con))
                {
                    if (sqlParams != null)
                    {
                        cmd.Parameters.AddRange(sqlParams);
                    }
                    try
                    {
                        con.Open();
                        SqlDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                        return reader;
                    }
                    catch
                    {
                        con.Close();
                        con.Dispose();
                        throw;//不抛出这个就会报错
                    }
                    finally
                    {
    
                    }
                }
    
            }
    
            public static int ExcuteAddMany(string cmdStr, string[] tempArray, params SqlParameter[] sqlParams)
            {
                DataTable table = new DataTable();
                table.Columns.Add("Name");
                table.Columns.Add("LayerNum");
            
                for (int i=0; i<tempArray.Length;i++)
                {
                    DataRow row = table.NewRow();
                    row["Name"] = tempArray[i].ToString();
                    row["LayerNum"] = 0;
                    table.Rows.Add(row);
                }
    
                string connectionStr = "server=PC-201701130905\B;uid=sa;pwd=s07j08b11;database=TripMaster";
                using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionStr))
                {
                    bulkCopy.BatchSize = table.Rows.Count;
                    bulkCopy.DestinationTableName = "SQLBulkCopyTest";//在插入的目标表
                                                                      //DataTable列名与数据库列名的映射
                    bulkCopy.ColumnMappings.Add("LayerNum", "LayerNum");
                    bulkCopy.ColumnMappings.Add("Name", "Name");
                    bulkCopy.WriteToServer(table);//写入到数据库中
                }
                return 1;
    
    
            }
    
    
        }
    }
    

      

  • 相关阅读:
    数据结构 算法 — 合并顺序表
    Helloworld(C++语言)
    js收缩菜单
    js日期操作函数
    Oracle 查询 ORA-01722
    初识spring boot(学习中,请多多指教)
    对数据库进行黑盒测试操作?
    虚拟机每次开机都恢复初始化原因
    SecureCRT仿真Linux颜色黑白问题
    《Pro Git》一、阅读理解开篇
  • 原文地址:https://www.cnblogs.com/heisehenbai/p/6852748.html
Copyright © 2011-2022 走看看