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

      

  • 相关阅读:
    RTK-Mannual-1-User Requirements&Installation and Uninstallation&Real-Time Positioning with RTKNAVI
    第一章-1.四元素的定义和性质
    ubuntu下的公式编辑器-latex
    SL-IMU-5、6-惯性导航解算方法以及惯性导航误差分析
    卫星导航系统-第16讲-船用惯性导航系统与卫星导航系统的组合-2
    卫星导航系统-第16讲-船用惯性导航系统与卫星导航系统的组合-1
    卫星导航系统-第14讲-差分定位方法-2
    卫星导航系统-第14讲-差分定位方法-1
    卫星导航系统-第13讲-差分定位方法-2
    【无线安全实践入门】破解WiFi密码的多个方法
  • 原文地址:https://www.cnblogs.com/heisehenbai/p/6852748.html
Copyright © 2011-2022 走看看