C#对sqlserver数据库访问、操作的代码

以下是调用例子:

public static DataTable GetUserInfo(string UserID)
        {
            string sql = "select * from V_User where UserID = @UserID";
            List<SqlParameter> paras = new List<SqlParameter>(){
                new SqlParameter("@UserID",UserID),
            };
            return Util.DBHelper.Select(sql, paras);
        }
public static string Add(string Title, byte[] Body, string UserID)
        {
            if (Title == "")
            {
                return "标题不能为空";
            }
            string sql = "insert into Notice(ID,Title,Body,Enable,UserID) values(newid(),@Title,@Body,'Y',@UserID)";
            List<SqlParameter> paras = new List<SqlParameter>() {
                new SqlParameter("@Title",Title),
                new SqlParameter("@Body",Body),
                new SqlParameter("@UserID",UserID),
            };

            return Util.DBHelper.Action(sql, paras);
        }
List<string> sqlList = new List<string>();
            List<List<SqlParameter>> values = new List<List<SqlParameter>>();
            for (int i = 0; i < dgv.Rows.Count; i++)
            {
                if ((bool)dgv.Rows[i].Cells[0].EditedFormattedValue == true)
                {
                    if (this.dgv.Rows[i].Cells["KW"].Value == null || this.dgv.Rows[i].Cells["KW"].Value.ToString() == "")
                    {
                        MessageBox.Show("您存在物料没有填写库位", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    sqlList.Add("insert into BG_CWLC(DJH,SCDD,GX,GZZX,LPSL,BLPSL,RGGS,JQGS,WLBM,WLMS,YDLX,GC,KW,PCGL,PC,SL,DW,CFSL,STATUS,UserID,BZSL) " +
                        "values('" + DJH + "','" + SCDD + "','" + GX + "','" + GZZX + "','" + LPSL + "','" + BLPSL + "','" + RGGS + "','" + JQGS 
                        + "','" + Convert.ToString(this.dgv.Rows[i].Cells[1].Value)
                        + "','" + Convert.ToString(this.dgv.Rows[i].Cells[2].Value)
                        + "','" + Convert.ToString(this.dgv.Rows[i].Cells[3].Value)
                        + "','" + Convert.ToString(this.dgv.Rows[i].Cells[4].Value)
                        + "','" + Convert.ToString(this.dgv.Rows[i].Cells[5].Value)
                        + "','" + Convert.ToString(this.dgv.Rows[i].Cells[6].Value)
                        + "','" + Convert.ToString(this.dgv.Rows[i].Cells[7].Value)
                        + "','" + Convert.ToString(this.dgv.Rows[i].Cells["SL"].Value)
                        + "','" + Convert.ToString(this.dgv.Rows[i].Cells["DW2"].Value)
                        + "','" + Convert.ToString(this.dgv.Rows[i].Cells["CFSL"].Value)
                        + "','" + "财务审批"
                        + "','" + Util.Configure.UserID
                        + "','" + Convert.ToString(this.dgv.Rows[i].Cells["BZSL"].Value) + "')");
                    values.Add(new List<SqlParameter>() {
                    });

                    cnt++;
                }
            }
            string rst = Util.DBHelper.ExecuteSqlTran(sqlList, values);
            if (rst != "")
            {
                MessageBox.Show(rst, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }            

有查询、操作的方法,已封装好:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace LIPSystem.Util
{
    public class DBHelper
    {
        /// <summary>
        /// 查询记录
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <returns></returns>
        public static DataTable Select(string sql)
        {
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
            {

                DataTable dt = new DataTable();
                try
                {
                    if (sqlCon != null)
                    {
                        sqlCon.Open();
                        DataSet ds = new DataSet();
                        SqlDataAdapter sda = new SqlDataAdapter(sql, sqlCon);
                        sda.Fill(ds);
                        dt = ds.Tables[0];
                        return dt;
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sqlCon.Close();
                }
                return null;
            }
        }

        /// <summary>
        /// 查询记录
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="paras">参数集合</param>
        /// <returns></returns>
        public static DataTable Select(string sql, List<SqlParameter> paras)
        {
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
            {
                DataTable dt = new DataTable();
                try
                {
                    if (sqlCon != null)
                    {
                        sqlCon.Open();
                        DataSet ds = new DataSet();
                        SqlCommand cmd = new SqlCommand(sql, sqlCon);
                        foreach (SqlParameter para in paras)
                        {
                            cmd.Parameters.Add(para);
                        }
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        da.Fill(ds);
                        cmd.Parameters.Clear();
                        return ds.Tables[0];
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sqlCon.Close();
                }
                return null;
            }
        }

        /// <summary>
        /// 查询记录
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="paras">参数集合</param>
        /// <returns></returns>
        public static DataTable MESSelect(string sql, List<SqlParameter> paras)
        {
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.MESConnStr))
            {
                DataTable dt = new DataTable();
                try
                {
                    if (sqlCon != null)
                    {
                        sqlCon.Open();
                        DataSet ds = new DataSet();
                        SqlCommand cmd = new SqlCommand(sql, sqlCon);
                        foreach (SqlParameter para in paras)
                        {
                            cmd.Parameters.Add(para);
                        }
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        da.Fill(ds);
                        cmd.Parameters.Clear();
                        return ds.Tables[0];
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sqlCon.Close();
                }
                return null;
            }
        }

        /// <summary>
        /// 查询记录
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="paras">参数集合</param>
        /// <returns></returns>
        public static DataTable SelectMES(string sql, List<SqlParameter> paras)
        {
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.MESConnStr))
            {
                DataTable dt = new DataTable();
                try
                {
                    if (sqlCon != null)
                    {
                        sqlCon.Open();
                        DataSet ds = new DataSet();
                        SqlCommand cmd = new SqlCommand(sql, sqlCon);
                        foreach (SqlParameter para in paras)
                        {
                            cmd.Parameters.Add(para);
                        }
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        da.Fill(ds);
                        cmd.Parameters.Clear();
                        return ds.Tables[0];
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sqlCon.Close();
                }
                return null;
            }
        }


        /// <summary>
        /// 执行SQL语句
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <returns>返回执行语句影响条数</returns>
        public static int Action(string sql)
        {
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
            {
                try
                {
                    if (sqlCon != null)
                    {
                        sqlCon.Open();
                        SqlCommand cmd = new SqlCommand(sql, sqlCon);
                        int rows = cmd.ExecuteNonQuery();
                        cmd.Dispose();
                        return rows;
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sqlCon.Close();
                }
                return -1;
            }

        }

        /// <summary>
        /// 执行SQL语句
        /// </summary>
        public static string Action(string sql, List<SqlParameter> paras)
        {
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
            {
                try
                {
                    if (sqlCon != null)
                    {
                        sqlCon.Open();
                        SqlCommand cmd = new SqlCommand(sql, sqlCon);
                        foreach (SqlParameter para in paras)
                        {
                            cmd.Parameters.Add(para);
                        }
                        int rows = cmd.ExecuteNonQuery();
                        cmd.Parameters.Clear();
                        cmd.Dispose();
                        return "";
                    }
                    else
                    {
                        return "数据库连接失败";
                    }
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
                finally
                {
                    sqlCon.Close();
                }
            }

        }

        /// <summary>
        /// 批量更新
        /// </summary>
        /// <param name="dt">更新的内容</param>
        /// <param name="tableName">目标表</param>
        /// <returns></returns>
        public static Boolean AddTable(DataTable dt, string tableName)
        {
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
            {
                try
                {
                    sqlCon.Open();
                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlCon))
                    {
                        bulkCopy.DestinationTableName = tableName;
                        for (int i = 0; i < dt.Columns.Count; i++)
                        {
                            bulkCopy.ColumnMappings.Add(dt.Columns[i].Caption.ToString(), dt.Columns[i].Caption.ToString());
                        }
                        bulkCopy.WriteToServer(dt);
                        return true;
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sqlCon.Close();
                }
            }
        }

        /// <summary>
        /// 执行多条SQL语句,实现数据库事务。
        /// </summary>
        /// <param name="SQLStringList">多条SQL语句</param>		
        public static string ExecuteSqlTran(List<String> SQLStringList)
        {
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
            {
                sqlCon.Open(); //打开数据库连接  
                SqlCommand cmd = new SqlCommand(); //创建SqlCommand命令  
                cmd.Connection = sqlCon; //设置命令连接  
                SqlTransaction tx = sqlCon.BeginTransaction();//开始事务  
                cmd.Transaction = tx;//设置执行命令的事务  
                cmd.CommandTimeout = 180;
                try
                {
                    int count = 0;//定义int类型变量,存放该函数返回值  
                    for (int n = 0; n < SQLStringList.Count; n++)//循环传入的sql语句  
                    {
                        string strsql = SQLStringList[n]; //第n条sql语句  
                        if (strsql.Trim().Length > 1) //如果第n条sql语句不为空  
                        {
                            cmd.CommandText = strsql; //设置执行命令的sql语句  
                            count += cmd.ExecuteNonQuery(); //调用执行增删改sql语句的函数ExecuteNonQuery(),执行sql语句  
                        }
                    }
                    tx.Commit();//提交事务  
                    return "";//返回受影响行数  
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                    return ex.Message;
                }
                finally
                {
                    sqlCon.Close();
                }
            }
        }

        /// <summary>
        /// 执行多条SQL语句,实现数据库事务。
        /// </summary>
        /// <param name="SQLStringList">多条SQL语句</param>		
        public static string ExecuteSqlTran(List<String> SQLStringList, List<List<SqlParameter>> parasList)
        {
            if (SQLStringList.Count != parasList.Count)
            {
                return "参数错误";
            }
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
            {
                sqlCon.Open(); //打开数据库连接  
                SqlCommand cmd = new SqlCommand(); //创建SqlCommand命令  
                cmd.Connection = sqlCon; //设置命令连接  
                SqlTransaction tx = sqlCon.BeginTransaction();//开始事务  
                cmd.Transaction = tx;//设置执行命令的事务  
                try
                {
                    int count = 0;//定义int类型变量,存放该函数返回值  
                    for (int n = 0; n < SQLStringList.Count; n++)//循环传入的sql语句  
                    {
                        string strsql = SQLStringList[n]; //第n条sql语句  
                        if (strsql.Trim().Length > 1) //如果第n条sql语句不为空  
                        {
                            cmd.CommandText = strsql; //设置执行命令的sql语句  
                            foreach (SqlParameter para in parasList[n])
                            {
                                cmd.Parameters.Add(para);
                            }
                            count += cmd.ExecuteNonQuery(); //调用执行增删改sql语句的函数ExecuteNonQuery(),执行sql语句  
                        }
                    }
                    tx.Commit();//提交事务  
                    cmd.Parameters.Clear();
                    return "";  
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                    return ex.Message;
                }
                finally
                {
                    sqlCon.Close();
                }
            }
        }

        public static string SendMail(List<String> SQLStringList, List<List<SqlParameter>> parasList)
        {
            if (SQLStringList.Count != parasList.Count)
            {
                return "参数错误";
            }
            using (SqlConnection sqlCon = new SqlConnection(@"Data Source=192.168.7.104;Initial Catalog=SCP_N;uid=SCP;pwd=SCPscp!@#"))
            {
                sqlCon.Open(); //打开数据库连接  
                SqlCommand cmd = new SqlCommand(); //创建SqlCommand命令  
                cmd.Connection = sqlCon; //设置命令连接  
                SqlTransaction tx = sqlCon.BeginTransaction();//开始事务  
                cmd.Transaction = tx;//设置执行命令的事务  
                try
                {
                    int count = 0;//定义int类型变量,存放该函数返回值  
                    for (int n = 0; n < SQLStringList.Count; n++)//循环传入的sql语句  
                    {
                        string strsql = SQLStringList[n]; //第n条sql语句  
                        if (strsql.Trim().Length > 1) //如果第n条sql语句不为空  
                        {
                            cmd.CommandText = strsql; //设置执行命令的sql语句  
                            foreach (SqlParameter para in parasList[n])
                            {
                                cmd.Parameters.Add(para);
                            }
                            count += cmd.ExecuteNonQuery(); //调用执行增删改sql语句的函数ExecuteNonQuery(),执行sql语句  
                        }
                    }
                    tx.Commit();//提交事务  
                    cmd.Parameters.Clear();
                    return "";
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                    return ex.Message;
                }
                finally
                {
                    sqlCon.Close();
                }
            }
        }

        public static string ExecuteSqlTranMES(List<String> SQLStringList, List<List<SqlParameter>> parasList)
        {
            if (SQLStringList.Count != parasList.Count)
            {
                return "参数错误";
            }
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.MESConnStr))
            {
                sqlCon.Open(); //打开数据库连接  
                SqlCommand cmd = new SqlCommand(); //创建SqlCommand命令  
                cmd.Connection = sqlCon; //设置命令连接  
                SqlTransaction tx = sqlCon.BeginTransaction();//开始事务  
                cmd.Transaction = tx;//设置执行命令的事务  
                try
                {
                    int count = 0;//定义int类型变量,存放该函数返回值  
                    for (int n = 0; n < SQLStringList.Count; n++)//循环传入的sql语句  
                    {
                        string strsql = SQLStringList[n]; //第n条sql语句  
                        if (strsql.Trim().Length > 1) //如果第n条sql语句不为空  
                        {
                            cmd.CommandText = strsql; //设置执行命令的sql语句  
                            foreach (SqlParameter para in parasList[n])
                            {
                                cmd.Parameters.Add(para);
                            }
                            count += cmd.ExecuteNonQuery(); //调用执行增删改sql语句的函数ExecuteNonQuery(),执行sql语句  
                        }
                    }
                    tx.Commit();//提交事务  
                    cmd.Parameters.Clear();
                    return "";
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                    return ex.Message;
                }
                finally
                {
                    sqlCon.Close();
                }
            }
        }


        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="ProcName"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        public static DataSet RunProcedure(string ProcName, List<SqlParameter> paras)
        {
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
            {
                try
                {
                    SqlCommand cmd = new SqlCommand(ProcName, sqlCon);
                    foreach (SqlParameter para in paras)
                    {
                        cmd.Parameters.Add(para);
                    }
                    cmd.CommandType = CommandType.StoredProcedure;

                    SqlDataAdapter dap = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    cmd.CommandTimeout = 120;
                    dap.Fill(ds);
                    return ds;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sqlCon.Close();
                }
            }
        }
    }
}
发布了30 篇原创文章 · 获赞 2 · 访问量 6601

猜你喜欢

转载自blog.csdn.net/tangliuqing/article/details/105223277