首页 > 代码库 > 【ADO.NET】1、简单配置与使用

【ADO.NET】1、简单配置与使用

1、一些基础的知识点

ExecuteReader(); //返回查询到的数据,一次一行,用于 select
ExecuteNonQuery(); //返回影响的行数,用于 delete,insert,update
ExecuteScalar(); //返回第一行,第一列的数值,类型为 Object,用于查询 最大值,绝对值,统计数据...等
---------------
using() 的使用
---------------
using() 用于对资源的释放,当程序运行到using以外,资源将自动释放,相当于 conn.Dispose()
using在出了作用域以后调用Dispose,Dispose内部会做这样的判断:有没有close,没有就先close再Dispose

conn.Open() 打开连接
conn.Close() 关闭连接,关了还可以打开
conn.Dispose() 销毁连接,销毁后无法再打开

技术分享
using(SqlConnection conn = new SqlConnection("server=.;database=mytest;uid=sa;pwd=gao;"))
{
  conn.Open();
}
Console.WriteLine("打开数据库连接成功");
Console.ReadKey();
技术分享

---------------------------
将连接字符串放到配置文件中
---------------------------
在app.config 或 web.config中,加入如下

<connectionStrings>
  <add name="ConnStr" connectionString="server=.;database=mytest;uid=sa;pwd=gao"/>
</connectionStrings>

增加引用: System.configuration
增加命名空间:using System.Configuration;

string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; //获取字符串
SqlConnection conn = new SqlConnection(Str);    //调用字符串

 

2、读取指定多列值
技术分享
using (SqlConnection conn = new SqlConnection("Data Source=.;database=mytest;uid=sa;pwd=gao;"))
{
    conn.Open();
    using (SqlCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "select * from mydo";
        using (SqlDataReader dr = cmd.ExecuteReader())
        {
        while (dr.Read())
        {
           int dbId = dr.GetString(dr.GetOrdinal("id"));        //获取ID列值
           string dbName = dr.GetString(dr.GetOrdinal("username")); //获取username
           string dbPwd = dr.GetString(dr.GetOrdinal("passwd"));    //获取passwd
           Console.WriteLine("ID={0},UserName={1},Passwd={2}",dbId,dbName,dbPwd);
        }
        }
    }
}
技术分享

 

3、ExecuteScalar() 的使用

返回第一行,第一列的数值,类型为 Object

技术分享
using (SqlConnection conn = new SqlConnection("Data Source=.;database=mytest;uid=sa;pwd=gao;"))
{
   conn.Open();
   using (SqlCommand cmd = conn.CreateCommand())
   {
       cmd.CommandText = "select count(*) from mydo";          //统计行数
       Console.WriteLine(Convert.ToString(cmd.ExecuteScalar()));  //返回第一行,第一列
   }
}
技术分享

显示新插入的主键值

技术分享
using (SqlConnection conn = new SqlConnection("Data Source=.;database=mytest;uid=sa;pwd=gao;"))
{
  conn.Open();
  using (SqlCommand cmd = conn.CreateCommand())
  {
    cmd.CommandText = "insert into T_User(Name,Pwd) output inserted.Id values(‘admin‘,‘1234‘)";          
    int id = Convert.ToInt32(cmd.ExecuteScalar());
    Console.WriteLine("新插入的主键值:{0}",id);      
  }
}
技术分享

 

ADO.NET 获得SQL 的OutPut和ReturnValue
技术分享
// 设置参数为 OutPut 参数
cmd.Parameters.Add("@Amount", SqlDbType.Decimal).Direction=ParameterDirection.Output;

// 设置参数为 RetrunValue
cmd.Parameters.Add("@Amount", SqlDbType.Decimal).Direction=ParameterDirection.ReturnValue;

// 获得输出参数值
cmd.Parameters["@Amount"].Value;
技术分享

 

【ADO.NET】1、简单配置与使用