【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

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

posted @ 2016-12-27 17:10  Doc.stu  阅读(287)  评论(0编辑  收藏  举报