最近接到一个项目 是做门户站的
要求程序能连接1000人到10000人
服务器我们不管 他们服务器 可以达到这个配置现在我们要从程序上考虑连接数
程序开发是Asp.net2.0+SQLServer2005我们的连接代码我大家发出来看看 
能不能达到同时几千人连接
请高手指点 如果不可以 请高手多多指点 怎么才能达到 最好 有个演示(Asp.net2.0+SQLServer2005)请说详细点 我们现在有两个解决方案 一个但单纯的传sql语句 另一个就是存储过程 
请问这两个分别都能达到连接几千人的要求吗?
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;namespace DBUtility
{    public class SQLHelper
    {
        private static readonly string conString = ConfigurationManager.AppSettings["conString"].ToString().Trim();        private static SQLHelper _instance;        public static SQLHelper getDBHelper()
        {
            if (_instance == null)
            {
                _instance = new SQLHelper();
            }
            return _instance;
        }        public static SqlConnection ReturnCon()
        {            string conString = ConfigurationManager.AppSettings["conString"].ToString().Trim();
            SqlConnection con = new SqlConnection(conString);
            if (con.State.Equals(ConnectionState.Closed))
            {
                con.Open();
            }            return con;
        }        public static SqlCommand CreateCmd(string procName, SqlParameter[] prams)
        {
            SqlConnection con = ReturnCon();
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection = con;
            cmd.CommandText = procName;
            if (prams != null)
            {
                foreach (SqlParameter Parameter in prams)
                {
                    if (Parameter != null)
                    {
                        cmd.Parameters.Add(Parameter);
                    }
                }
            }
            return cmd;
        }        public static SqlCommand CreateCmd(string procName, SqlParameter[] prams, SqlConnection con)
        {
            if (con.State.Equals(ConnectionState.Closed))
            {
                con.Open();
            }
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection = con;
            cmd.CommandText = procName;
            if (prams != null)
            {
                foreach (SqlParameter Parameter in prams)
                {
                    if (Parameter != null)
                    {
                        cmd.Parameters.Add(Parameter);
                    }
                }
            }            return cmd;
        }        public static SqlCommand CreateCmd(string procName, SqlConnection con)
        {
            if (con.State.Equals(ConnectionState.Closed))
            {
                con.Open();
            }
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection = con;
            cmd.CommandText = procName;            return cmd;
        }        public static SqlCommand CreateCmd(string procName)
        {
            SqlConnection con = ReturnCon();
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection = con;
            cmd.CommandText = procName;            return cmd;
        }        /// <summary>
        /// 返回一个DataSet(带参数)
        /// </summary>
        /// <param name="procName"></param>
        /// <param name="prams"></param>
        /// <returns></returns>
        public static DataSet RunProcGetDataSet(string procName, SqlParameter[] prams)
        {
            SqlCommand cmd = CreateCmd(procName, prams);
            SqlDataAdapter sda = new SqlDataAdapter();
            DataSet ds = new DataSet();
            sda.SelectCommand = cmd;
            sda.Fill(ds);
            return ds;
        }        /// <summary>
        /// 返回一个DataSet(不带参数)
        /// </summary>
        /// <param name="procName"></param>
        /// <param name="prams"></param>
        /// <returns></returns>
        public static DataSet RunProcGetDataSet(string procName)
        {
            SqlCommand cmd = CreateCmd(procName);
            SqlDataAdapter sda = new SqlDataAdapter();
            DataSet ds = new DataSet();
            sda.SelectCommand = cmd;
            sda.Fill(ds);
            return ds;
        }        /// <summary>
        /// 查询所有(带参数)返回一个SqlDataReader
        /// </summary>
        /// <param name="procName"></param>
        /// <param name="prams"></param>
        /// <returns></returns>
        public static SqlDataReader RunProcGetReader(string procName, SqlParameter[] prams)
        {
            SqlCommand cmd = CreateCmd(procName, prams);
            SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            return sdr;
        }        /// <summary>
        /// 查询所有(不带参数)返回一个SqlDataReader
        /// </summary>
        /// <param name="procName"></param>
        /// <returns></returns>
        public static SqlDataReader RunProcGetReader(string procName)
        {
            SqlCommand cmd = CreateCmd(procName);
            SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            return sdr;
        }        /// <summary>
        /// 执行增加、删除一条记录(不带参数)
        /// </summary>
        /// <param name="procName"></param>
        /// <returns></returns>
        public static int RunExecute(string procName)
        {
            SqlConnection con = ReturnCon();
            SqlCommand cmd = CreateCmd(procName, con);
            int intReturn = cmd.ExecuteNonQuery();
            con.Close();
            return intReturn;
        }
        /// <summary>
        /// 执行删除一条记录(带参数)
        /// </summary>
        /// <param name="procName"></param>
        /// <param name="prams"></param>
        /// <returns></returns>
        public static int RunExecute(string procName, SqlParameter[] prams)
        {
            SqlConnection con = ReturnCon();            SqlCommand cmd = CreateCmd(procName, prams, con);
            int intReturn = cmd.ExecuteNonQuery();            con.Close();            return intReturn;
        }
        /// <summary>
        /// 查询一条记录(不带参数)
        /// </summary>
        /// <param name="procName"></param>
        /// <returns></returns>
        public static int RunExecuteScalar(string procName)
        {            SqlConnection con = ReturnCon();
            SqlCommand cmd = CreateCmd(procName);            int intReturn = Convert.ToInt32(cmd.ExecuteScalar());
            con.Close();            return intReturn;
        }
        /// <summary>
        /// 查询一条记录(带参数)
        /// </summary>
        /// <param name="procName"></param>
        /// <param name="prams"></param>
        /// <returns></returns>
        public static int RunExecuteScalar(string procName, SqlParameter[] prams)
        {
            SqlConnection con = ReturnCon();
            SqlCommand cmd = CreateCmd(procName, prams);            int intReturn = Convert.ToInt32(cmd.ExecuteScalar());            con.Close();            return intReturn;
        }
    }
}

解决方案 »

  1.   

    最好高手给个完整的 SQLHelper.cs  谢谢 ~
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;namespace DAL
    {
        public static class DBHelper
        {        private static SqlConnection connection;
            public static SqlConnection Connection
            {
                get
                {
                    string connectionString = "server=.;uid=sa;pwd=tcaccp;database=NewsDB";
                    if (connection == null)
                    {
                        connection = new SqlConnection(connectionString);
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Broken)
                    {
                        connection.Close();
                        connection.Open();
                    }
                    return connection;
                }
            }
            public static int ExecuteCommand(string safeSql)
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                int result = cmd.ExecuteNonQuery();
                return result;
            }        public static int ExecuteCommand(string sql, params SqlParameter[] values)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                return cmd.ExecuteNonQuery();
            }        public static int GetScalar(string safeSql)
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                int result = Convert.ToInt32(cmd.ExecuteScalar());
                return result;
            }        public static int GetScalar(string sql, params SqlParameter[] values)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                int result = Convert.ToInt32(cmd.ExecuteScalar());
                return result;
            }        public static SqlDataReader GetReader(string safeSql)
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }        public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }        public static DataTable GetDataSet(string safeSql)
            {
                DataSet ds = new DataSet();
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
                return ds.Tables[0];
            }        public static DataTable GetDataSet(string sql, params SqlParameter[] values)
            {
                DataSet ds = new DataSet();
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
                return ds.Tables[0];
            }    }
    }
      

  3.   

    LZ去探索一下:params关键字用法