run in this way,   no why,   only for you heart
CSDN博客(点击进入) CSDN
51CTO(点击进入) 51CTO

SQLServer 数据库操作

SqlConnection 类 表示到 SQL Server 数据库的连接。 此类不能被继承。
1.主要属性

  • DataSource: 要连接的 SQL Server 的实例的名称。
  • Database: 获取当前数据库的名称或打开连接后要使用的数据库的名称。
  • ConnectionString: 连接字符串,其中包含源数据库名称和建立初始连接所需的其他参数。 默认值为一个空字符串。
  • ConnectionTimeout: 获取终止尝试并生成错误之前在尝试建立连接时所等待的时间。

2.示例

string connString = "Server=   ;Database=  ;UID=   ;PWD=   ;"; //Server=实例名称;Database=数据库名称t;UID=用户名;PWD=密码;
SqlConnection conn = new SqlConnection(connString);		   //创建SqlConnection 实例
conn.Open();					//打开连接
 ....
conn.Close();				   //关闭连接

或者:

string connString = "Server=   ;Database=  ;UID=   ;PWD=   ;"; //Server=实例名称;Database=数据库名称t;UID=用户名;PWD=密码;
SqlConnection conn = new SqlConnection();		   					   //创建SqlConnection 实例
conn.ConnectionString = connString;										   //设置ConnectionString 
conn.Open();				  //打开连接
 ....
conn.Close();				 //关闭连接

上面两种方式都使用Close()方法来释放资源,比较繁琐,可以使用using()方法来取代,以及数据库连接信息可以在config文件中配置,方便后期维护。

//config文件中的配置
<connectionStrings>
    <add name="SQLConnection" connectionString="Server=   ;Database=  ;UID=   ;PWD=   ;" providerName="System.Data.SqlClient" />
 </connectionStrings>

//数据库连接
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnection"].ConnectionString))

SqlCommand 类 表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程。 此类不能被继承。

1.主要属性

  • CommandType: 表示执行SQL操作的类型,有以下3中类型:
    StoredProcedure 存储过程名,
    TableDirect 表名,
    Text SQL 文本命令(默认为 Text)
  • CommandText: 执行的 SQL 语句。
  • Connection: 获取或设置 SqlCommand 的此实例使用的 SqlConnection。
  • Parameters: SQL 语句或存储过程的参数。
  • **CommandTimeout:**获取或设置在终止尝试执行命令并生成错误之前的等待时间。

2.主要方法

  • ExecuteReader: 将 CommandText 发送到 Connection,并生成 SqlDataReader。主要适用:SELECT语句。
  • ExecuteNonQuery: 对连接执行 Transact-SQL 语句并返回受影响的行数。适用:UPDATE、INSERT 和 DELETE 语句。
  • ExecuteScalar: 执行查询,并返回由查询返回的结果集中的第一行的第一列。 其他列或行将被忽略。适用:SELECT语句。

3.示例

    public class Program
    {
        static void Main(string[] args)
        {

            //ExecuteReader()方法
            FunExecuteReader();

            // ExecuteScalar()方法
            FunExecuteScalar();

            //ExecuteNonQuery()方法
            FunExecuteNonQuery();
        }

        /// <summary>
        /// ExecuteNonQuery()方法
        /// </summary>
        public static void FunExecuteNonQuery()
        {
            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnection"].ConnectionString))

            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.CommandType = CommandType.Text; //默认 Text               
                cmd.CommandText = "Update Student SET name='王丽' Where id='1004'";
                cmd.Connection = conn;
                conn.Open();

                //对连接执行 Transact-SQL 语句并返回受影响的行数。
                int id = (Int32)cmd.ExecuteNonQuery();

                Console.ReadKey();
            }
        }

        /// <summary>
        /// ExecuteScalar()方法
        /// </summary>
        public static void FunExecuteScalar()
        {
            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnection"].ConnectionString))

            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.CommandType = CommandType.Text; //默认 Text
                cmd.CommandTimeout = 30;
                cmd.CommandText = "SELECT * FROM Student";
                cmd.Connection = conn;
                conn.Open();

                //查询返回的结果集中的第一行的第一列
                int id = (Int32)cmd.ExecuteScalar();
                
                Console.ReadKey();
            }
        }
        
        /// <summary>
        ///  ExecuteReader()方法
        /// </summary>
        public static void FunExecuteReader()
        {
            List<Student> StuList = new List<Student>();
            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnection"].ConnectionString))

            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.CommandType = CommandType.Text; //默认 Text
                cmd.CommandTimeout = 30;
                cmd.CommandText = "SELECT * FROM Student";
                cmd.Connection = conn;
                conn.Open();

                SqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    Student stu = new Student();
                    stu.id = Convert.ToInt32(reader["id"]);
                    stu.name = reader["name"].ToString();
                    stu.password = reader["password"].ToString();
                    stu.score = Convert.ToInt32(reader["score"]);
                    StuList.Add(stu);
                }
                if (StuList != null)
                {
                    foreach (Student stu in StuList)
                    {
                        Console.WriteLine(stu.ToString());
                    }
                }
                Console.ReadKey();
            }
        }
    }

官方文档:https://docs.microsoft.com/zh-cn/dotnet/api/system.data.sqlclient?view=netframework-4.7.2

posted @ 2019-03-10 23:28  _小龙人  阅读(115)  评论(0编辑  收藏  举报