zoukankan      html  css  js  c++  java
  • 【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;
  • 相关阅读:
    IndentationError: expected an indented block错误
    pip安装requests报错unicodeEncodeError:'ascii' codec can encode charactesers in position 9-12:ordinal not in range(128)
    转载 Python 安装setuptools和pip工具操作方法(必看)
    if _name_ == " _main_"
    Jmeter分布式测试过程中遇到的问题及摘抄前辈问题汇总
    Jmeter分布式测试笔记
    用Jmeter参数化实现接口自动化测试
    ORACLE11G R2 RAC的进程启动流程
    zabbix AGENTS 在WINDOWS的安装
    my live movie / dianying
  • 原文地址:https://www.cnblogs.com/xgao/p/4135003.html
Copyright © 2011-2022 走看看