zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    从0系统学Android-2.3使用 Intent 在 Activity 之间穿梭
    从0系统学Android-2.1Activity的使用
    从0系统学Android-1.4日志工具的使用
    从0系统学Android--1.3创建你的第一个 Android 项目
    从0系统学Android--1.2 手把手带你搭建开发环境
    从0系统学 Android--1.1认识 Android
    Android 蓝牙开发(3)——蓝牙的详细介绍
    Android 蓝牙开发(3)——蓝牙的详细介绍
    Android 蓝牙开发(2)——低功耗蓝牙
    Android 蓝牙开发(1)
  • 原文地址:https://www.cnblogs.com/wangqilong/p/12540401.html
Copyright © 2011-2022 走看看