zoukankan      html  css  js  c++  java
  • 【ADO.NET】 基础 (SQL Server)

    一、Web.config配置

    <connectionStrings>
        <add name="constr_name" connectionString="server=192.168.1.139;uid=sa;pwd=123456;Trusted_Connection=no;Database=dabasename" providerName="system.data.sqlclient"/>
    </connectionStrings>
    注:constr_name(自定义名),server(sqlserver服务器地址),uid(登录名),pwd(密码),Trusted_Connection(是否使用windows账户登录),Database(数据库名),providerName(数据库类型,sqlserver的为system.data.sqlclient)-

     二、C#程序

       例1、 获取所有用户

    //一、连接数据库
    string connectionString = ConfigurationManager.ConnectionStrings["constr_name"].ToString();
    SqlConnection conn = new SqlConnection(connectionString);
    conn.Open();
    
    //二、构建数据库操作类
    SqlCommand command = new SqlCommand();
    command.CommandText = "SELECT * FROM [User];";
    command.Connection = conn;
    
    //三、读取数据
    SqlDataReader reader = command.ExecuteReader();
    
    //四、将数据写入对象
    User user = null;
    List<User> list = new List<User>();
    while (reader.Read())
    {
        user = new User();
        user.id = (int)reader["id"];
        user.name = reader["name"].ToString();
    
        list.Add(user);
    }
    
    //五、关闭
    reader.Close();
    conn.Close();
    
    //另外,User实体类
    class User
    {
    public int id { get; set; }
    public string name { get; set; }
    }

      例2、 使用事务,插入用户数据

    int result = 0;
    
    //一、连接数据库
    string connectionString = ConfigurationManager.ConnectionStrings["constr_name"].ToString();
    SqlConnection conn = new SqlConnection(connectionString);
    conn.Open();
    
    //--开始事务
    SqlTransaction trans = conn.BeginTransaction();
    
    try
    {
        //二、构建数据库操作类
        SqlCommand command = new SqlCommand();
        command.CommandText = "INSERT INTO [User] VALUES(1,'name1');";
        command.Connection = conn;
        command.Transaction = trans;//事务
        result += command.ExecuteNonQuery();//插入第一条用户数据并返回影响条数
    
        command.CommandText = "INSERT INTO [User] VALUES(2,'name2');";
        result += command.ExecuteNonQuery();//插入第二条用户数据并返回影响条数
    
        if (result == 2)
        {
            trans.Commit();//两条数据都插入成功则提交事务
        }
        else
        {
            trans.Rollback();//否则回滚事务,取消所有插入的数据
        }
    
    }
    catch (System.Exception ex)
    {
        trans.Rollback();//出错,回滚事务
    }
    finally
    {
        conn.Close();
    }

     另外:

    如果忘记关闭连接对象(使用conn.Close();),将影响性能,所以鼓励使用using,详情见以下连接:

    http://blog.csdn.net/u011096141/article/details/24370141

    当然,忘记关闭的情况应该是在一些比较复杂项目中才会发生。

  • 相关阅读:
    趣学算法:一场说走就走的旅行 (最短路)
    趣学算法:一场说走就走的旅行 (最短路)
    计蒜客:节食的限制(01背包)
    计蒜客:节食的限制(01背包)
    计蒜客:箱子剩余空间(01背包)
    计蒜客:箱子剩余空间(01背包)
    计蒜客:汽车费用(完全背包)
    计蒜客:汽车费用(完全背包)
    计蒜客: 等和的分隔子集 (01背包)
    .Cannot create an NSPersistentStoreCoordinator with a nil model
  • 原文地址:https://www.cnblogs.com/stgp/p/6180777.html
Copyright © 2011-2022 走看看