当前位置:编程学习 > C#/ASP.NET >>

有木有向数据库添加数据的通用类。

有木有向数据库添加数据的通用类。 --------------------编程问答-------------------- SqlHelper --------------------编程问答-------------------- 获得DBHelper,网上很多这样的工具类,搜索一下就可以找到很多。 --------------------编程问答-------------------- http://topic.csdn.net/u/20121015/08/c78078e9-d1a3-4252-b0e3-3d59dc946eca.html?1942 --------------------编程问答-------------------- 数据库操作类sqlhelper
EF
自己编写 --------------------编程问答-------------------- 我的意思是不管什么项目,只要是保存数据,都可以调用,不用每次都insert --------------------编程问答-------------------- 我有,自己写的 一个 ,要的话我就给你 贴出来 或是你自己去 下个 SQLHELPER。

每个数据库的语法都不一样。

还有就是 组件的 DLL 也不一样。需要 整合的。

你可以自己写一个 所有的 都用 接口 ,这样 不管是 oledbConnection 还是 Mysql 还是 sqlserver就都可以了  --------------------编程问答-------------------- 可给给我一份吗?参考 --------------------编程问答-------------------- 是数据的添加保存 不是数据库连接 --------------------编程问答-------------------- 这个可以不?

//ExecuteNonQuery
        public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)//
        {
            string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();    //打开数据库
                using (SqlCommand cmd = conn.CreateCommand
                {
                    cmd.CommandText = sql;
                    foreach (SqlParameter param in parameters)
                    {
                        cmd.Parameters.Add(param);
                    }
                    return cmd.ExecuteNonQuery();
                }
            }
        }


SQLHelper.ExecuteNonQuery("update Login set ErrorTimes = ErrorTimes + 1 where Users = @user", new SqlParameter("user", txtUser.Text));
可以直接调用的。。 --------------------编程问答-------------------- 针对任何表的数据保存,都可以这样做吗 --------------------编程问答-------------------- 自己可以编写一个,包括增删改查,事物,存储过程,网上也能搜到 --------------------编程问答-------------------- ado.net entity --------------------编程问答--------------------
引用 11 楼 fangyangmao 的回复:
自己可以编写一个,包括增删改查,事物,存储过程,网上也能搜到


就是没找到呀 --------------------编程问答-------------------- ORM类的框架都可以做到啊。你自己写一个简单sqlhelper的也不难的 --------------------编程问答-------------------- 自己网上找一下 --------------------编程问答-------------------- [code=csharp]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;

namespace RMS_DBUtility
{
    public class DBHelper : IDBHelper
    {
        //单例对象
        private static DBHelper helper = null;
        //SQL数据连接
        //private SqlConnection conn;
        //SQL命令对象
        //  private SqlCommand cmd;
        //SQL数据适配器
        //private SqlDataAdapter sda;

        #region GetInstance
        /// <summary>
        /// 获取helper对象
        /// </summary>
        /// <returns>DBHelper</returns>
        public static DBHelper GetInstance()
        {
            if (helper == null)
            {
                helper = new DBHelper();
            }
            return helper;
        }
        #endregion


        #region 私有方法
        /// <summary>
        /// 得到SQL数据连接对象
        /// </summary>
        /// <returns>SqlConnection</returns>
        private SqlConnection GetConnection()
        {

            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connString"].ConnectionString);

            //conn = new SqlConnection("server=16.173.247.175;uid=sa;pwd=sa;database=EVOC");
            conn.Open();
            return conn;
        }

        /// <summary>
        /// 自定义得到SQL数据连接对象
        /// </summary>
        /// <param name="connStr">自定义得到SQL数据连接</param>
        /// <returns>SqlConnection</returns>
        private SqlConnection GetConnection(string connStr)
        {

            SqlConnection conn = new SqlConnection(connStr);

            //conn = new SqlConnection("server=16.173.247.175;uid=sa;pwd=sa;database=EVOC");
            conn.Open();
            return conn;
        }

        /// <summary>
        /// 关闭SQL数据连接
        /// </summary>
        /// <param name="conn">SqlConnection</param>
        private void CloseConnection(SqlConnection conn)
        {
            if (conn != null && conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }

        /// <summary>
        /// 为命令对象设置参数
        /// </summary>
        /// <param name="parameters">参数列表</param>
        private void SetParameter(SqlParameter[] parameters, SqlCommand cmd)
        {
            cmd.CommandTimeout = 999;
            //如果参数不为空并且至少有一个参数则为命令对象添加参数
            if (parameters != null && parameters.Length > 0)
            {
                foreach (SqlParameter param in parameters)
                {
                    cmd.Parameters.Add(param);
                }
            }
        }
        #endregion

        public int ExcuteSQLNonQuery(string sql, SqlParameter[] parameters)
        {
            //影响行数
            int count = 0;
            //获取数据连接
            SqlConnection conn = GetConnection();
            //创建命令对象
            SqlCommand cmd = new SqlCommand(sql, conn);
            //设置命令事务
            SqlTransaction transaction = conn.BeginTransaction();
            cmd.Transaction = transaction;
            SetParameter(parameters, cmd);
            try
            {
                count = cmd.ExecuteNonQuery();
                transaction.Commit();
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                throw ex;
            }
            finally
            {
                CloseConnection(conn);
            }
            return count;
        }

        public int ExcuteProcNonQuery(string procName, SqlParameter[] parameters)
        {
            int count = 0;
            SqlConnection conn = GetConnection();
            SqlCommand cmd = new SqlCommand(procName, conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlTransaction transaction = conn.BeginTransaction();
            cmd.Transaction = transaction;
            SetParameter(parameters, cmd);
            try
            {
                count = cmd.ExecuteNonQuery();
                transaction.Commit();
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                throw ex;
            }
            finally
            {
                CloseConnection(conn);
            }
            return count;
        }

        public SqlDataReader ExcuteSQLReader(string sql, SqlParameter[] parameters)
        {
            SqlDataReader sdr = null;
            SqlConnection conn = GetConnection();
            try
            {
                SqlCommand cmd = new SqlCommand(sql, conn);
                SetParameter(parameters, cmd);
                sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (Exception ex)
            {
                CloseConnection(conn);
                throw ex;
            }
            return sdr;

        }

        public SqlDataReader ExcuteProcReader(string procName, SqlParameter[] parameters)
        {
            SqlDataReader sdr = null;
            SqlConnection conn = GetConnection();
            try
            {
                SqlCommand cmd = new SqlCommand(procName, conn);
                cmd.CommandType = CommandType.StoredProcedure;

                SetParameter(parameters, cmd);
                sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (Exception ex)
            {
                CloseConnection(conn);
                throw ex;
            }
            return sdr;
        }

        /// <summary>
        /// over load function 
        /// </summary>
        /// <param name="procName"></param>
        /// <param name="parameters"></param>
        /// <param name="connStr">connection string</param>
        /// <returns></returns>
        public SqlDataReader ExcuteProcReader(string procName, SqlParameter[] parameters, string connStr)
        {
            SqlDataReader sdr = null;
            SqlConnection conn = GetConnection(connStr);
            try
            {
                SqlCommand cmd = new SqlCommand(procName, conn);
                cmd.CommandType = CommandType.StoredProcedure;

                SetParameter(parameters, cmd);
                sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (Exception ex)
            {
                CloseConnection(conn);
                throw ex;
            }
            return sdr;
        }


        public DataTable ExcuteProcReader(string procName, SqlParameter[] parameters, out int count)
        {
            DataTable dt = new DataTable();
            SqlConnection conn = GetConnection();
            try
            {
                SqlCommand cmd = new SqlCommand(procName, conn);
                cmd.CommandType = CommandType.StoredProcedure;
                SetParameter(parameters, cmd);
                using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
                {
                    sda.Fill(dt);
                    count = Convert.ToInt32(sda.SelectCommand.Parameters[parameters.Length - 1].Value);
                }
            }
            catch (Exception ex)
            {
                count = 0;
                throw ex;
            }
            finally
            {
                CloseConnection(conn);
            }
            return dt;
        }


        public DataTable ExcuteProcReader(string procName, SqlParameter[] parameters, out int count, string connStr)
        {
            DataTable dt = new DataTable();
            SqlConnection conn = GetConnection(connStr);
            try
            {
                SqlCommand cmd = new SqlCommand(procName, conn);
                cmd.CommandType = CommandType.StoredProcedure;
                SetParameter(parameters, cmd);
                using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
                {
                    sda.Fill(dt);
                    count = Convert.ToInt32(sda.SelectCommand.Parameters[parameters.Length - 1].Value);
                }
            }
            catch (Exception ex)
            {
                count = 0;
                throw ex;
            }
            finally
            {
                CloseConnection(conn);
            }
            return dt;
        }
--------------------编程问答-------------------- 和上面链接起的



        public DataTable ExcuteProcTable(string procName, SqlParameter[] parameters)
        {
            DataTable dt = new DataTable();
            SqlConnection conn = GetConnection();
            try
            {
                SqlCommand cmd = new SqlCommand(procName, conn);
                cmd.CommandType = CommandType.StoredProcedure;
                SetParameter(parameters, cmd);
                using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
                {
                    sda.Fill(dt);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                CloseConnection(conn);
            }
            return dt;
        }

        public bool ExcuteProcs(Dictionary<string, SqlParameter[]> procs)
        {
            bool flag = false;
            SqlConnection conn = GetConnection();
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection = conn;
            SqlTransaction transaction = conn.BeginTransaction();
            cmd.Transaction = transaction;
            try
            {
                foreach (string procName in procs.Keys)
                {
                    cmd.CommandText = procName;
                    if (procName.LastIndexOf(".") != -1)
                    {
                        cmd.CommandText = procName.Substring(0, procName.LastIndexOf("."));
                    }
                    cmd.Parameters.Clear();
                    SetParameter(procs[procName], cmd);
                    cmd.ExecuteNonQuery();
                }
                transaction.Commit();
                flag = true;
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                throw ex;
            }
            finally
            {
                CloseConnection(conn);
            }
            return flag;
        }
    }
}



直接调用就可以了:
SqlDataReader dr = helper.ExcuteProcReader("[proc_search_P6_Project_List_PageData]", sp)
[/code] --------------------编程问答--------------------

http://www.cnblogs.com/jonneydong/archive/2010/05/29/2418719.html
带执行示例
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,