.NET连接数据库的几种方法

时间:2021-08-27 13:21:27

第一种,放在web.config中

<configuration>

<connectionStrings>
        <add name="playVideo" connectionString="Data source=localhost\SQLEXPRESS;Initial Catalog=master;Integrated Security=SSPI"/>

    </connectionStrings>

...

</configuration>

推荐用第二种方式,把数据库连接写在类文件里面,方便重复使用。

connectionString ="Initial Catalog=" + dbName + ";Data Source=" + dbServer +";Integrated Security=SSPI;"
  sqlConnection = new SqlConnection(connectionString);
  sqlCommand = new SqlCommand();
  sqlCommand.Connection = sqlConnection;
  sqlConnection.Open();

通过这些命令创建连接, 然后通过
R.sqlCommand.CommandText = "select * from “来读取数据,
  SqlDataReader temp = DBConnR.sqlCommand.ExecuteReader();//再通过SqlDataReader 把数据导入到。net里面。。。
以上代码使用C#写的。。。

 

以下是SqlHelper类:

C# code



public class SqlHelper

    {

        #region ConnectionString

        ///

        /// 通过Web.config读取数据库连接字符串

        ///

        public static readonly string ConnString = ConfigurationManager.ConnectionStrings["Epay_WebConnectionString"].ConnectionString;

        #endregion



        #region ExecuteNonQuery

        ///

        /// 对连接执行Transact-SQL语句并返回受影响的行数

        ///

        /// SqlCommand 类型 sql语句/存储过程

        /// SqlCommand 内容

        /// SqlCommand 参数集合

        /// int reValue 受影响行数

        public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)

        {

           int reValue = 0;

           using (SqlConnection conn = new SqlConnection(ConnString))

           {

               using (SqlCommand cmd = conn.CreateCommand())

               {

                   PrepareCommand(cmd, cmdType,cmdText, cmdParams);

                   conn.Open();

                   reValue = cmd.ExecuteNonQuery();

                   cmd.Parameters.Clear();

               }

           }

           return reValue;

        }

        ///

        /// 对连接执行Transact-SQL语句并返回受影响的行数

        ///

        /// 数据库连接

        /// SqlCommand 类型 sql语句/存储过程

        /// SqlCommand 内容

        /// SqlCommand 参数集合

        /// int reValue 受影响行数

        public static int ExecuteNonQuery(SqlConnection conn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)

        {

           int reValue = 0;

           using (SqlCommand cmd = conn.CreateCommand())

           {

               PrepareCommand(cmd, cmdType, cmdText, cmdParams);

               if (conn.State != ConnectionState.Open)

                   conn.Open();

               reValue = cmd.ExecuteNonQuery();

               cmd.Parameters.Clear();

           }

           return reValue;

        }

        #endregion



        #region ExecuteReader

        ///

        /// 将System.Data.SqlClient.SqlCommand.CommandText 发送到 System.Data.SqlClient.SqlCommand.Connection,并使用System.Data.CommandBehavior值之一

        /// 生成一个System.Data.SqlClient.SqlClient.SqlDataReader

        ///

        /// SqlCommand 类型 sql语句/存储过程

        /// SqlCommand 内容

        /// SqlCommand 参数集合

        /// SqlDataReader reReader

        public static SqlDataReader ExecuteReader(CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)

        {

           SqlConnection conn = new SqlConnection(ConnString);

           try

           {

               SqlDataReader reReader;

               using (SqlCommand cmd = conn.CreateCommand())

               {

                   PrepareCommand(cmd, cmdType,cmdText, cmdParams);

                   conn.Open();

                   reReader =cmd.ExecuteReader(CommandBehavior.CloseConnection);

                   cmd.Parameters.Clear();

               }

               return reReader;

           }

           catch

           {

               conn.Close();

               throw;

           }

        }

        ///

        /// 将System.Data.SqlClient.SqlCommand.CommandText 发送到 System.Data.SqlClient.SqlCommand.Connection,并使用System.Data.CommandBehavior值之一

        /// 生成一个System.Data.SqlClient.SqlClient.SqlDataReader

        ///

        /// 数据库连接

        /// SqlCommand 类型 sql语句/存储过程

        /// SqlCommand 内容

        /// SqlCommand 参数集合

        /// SqlDataReader reReader

        public static SqlDataReader ExecuteReader(SqlConnection conn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)

        {

           SqlDataReader reReader;

           using (SqlCommand cmd = conn.CreateCommand())

           {

               PrepareCommand(cmd, cmdType, cmdText, cmdParams);

               if (conn.State != ConnectionState.Open)

                   conn.Open();

               reReader = cmd.ExecuteReader();

               cmd.Parameters.Clear();

          }

           return reReader;

        }

        #endregion

        #region ExecuteScalar

        ///

        /// 执行查询,并返回查询所返回结果集中的第一行的第一列。忽略其他行或列

        ///

        /// SqlCommand 类型 sql语句/存储过程

        /// SqlCommand 内容

        /// SqlCommand 参数集合

        /// object reValue 查询所返回结果集中的第一行的第一列的值

        public static object ExecuteScalar(CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)

        {

           object reValue;

           using (SqlConnection conn = new SqlConnection(ConnString))

           {

               using (SqlCommand cmd = conn.CreateCommand())

               {

                   PrepareCommand(cmd, cmdType,cmdText, cmdParams);

                   conn.Open();

                   reValue = cmd.ExecuteScalar();

                   cmd.Parameters.Clear();

               }

           }

           return reValue;

        }

        ///

        /// 执行查询,并返回查询所返回结果集中的第一行的第一列。忽略其他行或列

        ///

        /// 数据库连接

        /// SqlCommand 类型 sql语句/存储过程

        /// SqlCommand 内容

        /// SqlCommand 参数集合

        /// object reValue 查询所返回结果集中的第一行的第一列的值

        public static object ExecuteScalar(SqlConnection conn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)

        {

           object reValue;

           using (SqlCommand cmd = conn.CreateCommand())

           {

               PrepareCommand(cmd, cmdType, cmdText, cmdParams);

               if (conn.State != ConnectionState.Open)

                   conn.Open();

               reValue = cmd.ExecuteScalar();

               cmd.Parameters.Clear();

           }

           return reValue;

        }

        #endregion

        #region ExecuteDataTable

        ///

        /// 对连接执行Transact-SQL语句,并以DataTable的形式返回结果集

        ///

        /// SqlCommand 类型 sql语句/存储过程

        /// SqlCommand 内容

        /// SqlCommand 参数集合

        /// DataTable reData 查询结果集

        public static DataTable ExecuteDataTable(CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)

        {

           DataTable reData = new DataTable();

           using (SqlConnection conn = new SqlConnection(ConnString))

           {

               using (SqlCommand cmd = conn.CreateCommand())

               {

                   PrepareCommand(cmd, cmdType,cmdText, cmdParams);

                   using (SqlDataAdapter sda = new SqlDataAdapter(cmd))

                   {

                       conn.Open();

                       sda.Fill(reData);

                   }

                   cmd.Parameters.Clear();

               }

           }

           return reData;

        }

        ///

        /// 对连接执行Transact-SQL语句,并以DataTable的形式返回结果集

        ///

        /// 数据库连接

        /// SqlCommand 类型 sql语句/存储过程

        /// SqlCommand 内容

        /// SqlCommand 参数集合

        /// DataTable reData 查询结果集

        public static DataTable ExecuteDataTable(SqlConnection conn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)

        {

           DataTable reData = new DataTable();

           using (SqlCommand cmd = conn.CreateCommand())

           {

               PrepareCommand(cmd, cmdType, cmdText, cmdParams);

               using (SqlDataAdapter sda = new SqlDataAdapter(cmd))

               {

                   if (conn.State != ConnectionState.Open)

                       conn.Open();

                   sda.Fill(reData);

               }

               cmd.Parameters.Clear();

           }

           return reData;

        }

        #endregion

        #region CloseConnection

        ///

        /// 关闭数据库

        ///

        /// 数据库连接

        public static void CloseConnection(SqlConnection conn)

        {

           if (conn.State != ConnectionState.Closed)

               conn.Close();

        }

        #endregion

        #region PrepareCommand

        ///

        /// 为SqlCommand添加参数

        ///

        /// SqlCommand 命令

        /// SqlCommand 类型 sql语句/存储过程

        /// SqlCommand 内容

        /// SqlCommand 参数集合

        private static void PrepareCommand(SqlCommand cmd, CommandType cmdType, string cmdText, SqlParameter[] cmdParams)

        {

           cmd.CommandText = cmdText;

           cmd.CommandType = cmdType;

           if (cmdParams != null)

           {

               foreach (SqlParameter param in cmdParams)

               {

                   cmd.Parameters.Add(param);

               }

           }

        }

        #endregion

    }