zoukankan      html  css  js  c++  java
  • ADO.NET 之 三 yz

    三、操作篇(1)

    1.构造函数

     1 // 1.
     2 SqlCommand cmd = new SqlCommand(); //默认构造函数
     3 /*
     4    相关的默认值为以下:
     5    CommandText : 空字符串
     6   CommandTimeout : 30s
     7    CommandType : CommandType.Text
     8    Connection : NULL
     9 */
    10 
    11 //2.
    12 SqlCommand cmd = new SqlCommand( 
    13      "SELECT * FROM NORTHWND"         //T-SQL语句
    14   );
    15 
    16 //3.
    17 using(SqlConnection con = new SqlConnection("...") )
    18 {
    19      SqlCommand cmd = new SqlCommand(
    20                    "SELECT * FROM NORTHWND",   //T-SQL语句
    21              con                                           //数据库连接实例
    22 }
    23 
    24 //4.
    25 using(SqlConnection con = new SqlConnection("...") )
    26 {
    27      SqlTransaction tr = con.BeginTransaction("NorthwndTransaction"); //创建事务 后面章节将会介绍
    28      SqlCommand cmd = new SqlCommand(
    29                    "SELECT * FROM NORTHWND", //T-SQL语句
    30                    con,                                        //数据库连接实例
    31                    tr                                            //事务实例
    32     );
    33 }

    2.下面我们将介绍经常使用的属性和方法

    2.1 设置或获取数据库连接实例

    1 using( SqlConnection con = new SqlConnection("...") )
    2 {
    3      SqlCommand cmd = new SqlCommand();
    4      cmd.Connection = con;    //设置有关的数据库连接实例
    5 }

    2.2 设置或获取超时时间

    1 using( SqlConnection con = new SqlConnection("...") )
    2 {
    3      SqlCommand cmd = new SqlCommand();
    4      cmd.CommandTimeout = 45;  //设置超时时间为45s
    5 }
    6 
    7 //注意: 0 表示无限等待
    8 //在异步中忽略该参数

    2.3 获取或设置一个值,只是CommandText的解释

    1 using( SqlConnection con = new SqlConenction())
    2 {
    3       SqlCommand cmd = new SqlCommand();
    4       cmd.CommandType = CommandType.StoredProcedure;//设置如何解释 CommandType 的解释
    5 }
    6 //默认为:CommandType.Text

    2.4 获取或设置需要执行的T-SQL语句、表明或存储过程

    1 using( SqlConnection con = new SqlConnection() )
    2 {
    3      SqlCommand cmd = new SqlCommand();
    4      cmd.CommandText = "SELECT * FROM NORTHWND";//设置需要指定 T-SQL 语句、表名或存储过程
    5 }

    2.5 设置或获取 T-SQL 语句或存储过程的参数

     1 using (SqlConnection connection = new SqlConnection("..."))
     2       {
     3           SqlCommand cmd = new SqlCommand();
     4           cmd.Connection = con;
     5           cmd.CommandText = "UPDATE Sales.Store SET Demographics = @demographics "
     6           + "WHERE CustomerID = @ID;";
     7           command.Parameters.Add("@ID", SqlDbType.Int);//增加一个参数
     8           command.Parameters["@ID"].Value = customerID; //设置改参数的值
     9           command.Parameters.AddWithValue("@demographics", demoXml);//增加并设置改参数的值
    10       }

    2.6 尝试取消 SqlCommand 的执行

    1 using( SqlConnection con = new SqlConnection("...") )
    2 {
    3         SqlCommand cmd = new SqlCommand();
    4         con.Open();
    5 cmd.Connection = con; 6 cmd.CommandText = "SELECT * FROM NORTHWND"; 7 cmd.ExecuteReader();
    8 cmd.Cancel(); //尝试取消执行 9 }

    2.7 执行 T-SQL 语句并返回受影响的行

    1 using( SqlConnection con = new SqlConnection("...") )
    2 {
    3      SqlCommand cmd = new SqlCommand();
    4      con.Open();
    5 cmd.Conenction = con; 6 cmd.CommandText = "UPDATE NORTHWND SET NAME = 'AD' WHERE ID = 1"; 7 int rows = cmd.ExecuteNonQuery(); //返回该语句执行后受影响的行数 8 }

    2.8 执行 CommandText 并返回一个 SqlDataReader

    1 using( SqlConnection con = new SqlConenction("..") )
    2 {
    3      SqlCommand cmd = new SqlCommand();
    4      con.Open();
    5 cmd.Connection = con; 6 cmd.CommandText = "SELECT * FROM NORTHWND"; 7 SqlDataReader reader = cmd.ExecuteReader(); //执行CommandText并返回一个 SqlDataReader 8 }

    2.9 带参数的 ExecuteReader

    1 using( SqlConnection con = new SqlConnection("...") )
    2 {
    3     SqlCommand cmd = new SqlCommand();
    4     con.Open();
    5     cmd.Conencion = con;
    6     SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); //当 reader 关闭时 con 也会关闭
    7 }

    该参数可选值如下:

    CommandBehavior:

          Default:默认

          SingleResult:查询返回一个结果集

          SchemaOnly:查询只返回列信息

          KeyInfo:此查询返回列和主键信息

          SingleRow:查询应返回一行

         CloseConnection:当关联的 DataReader 关闭时,相关的数据库连接实例也关闭

    2.10 返回结果集中的第一行第一列

    1 ExecuteScalar();

    上面已经介绍了常用的属性和方法,下面一节将会介绍更高级更深层次的.

  • 相关阅读:
    iOS 苹果开发证书失效的解决方案(Failed to locate or generate matching signing assets)
    iOS NSArray数组过滤
    App Store2016年最新审核规则
    iOS 根据字符串数目,自定义Label等控件的高度
    iOS 证书Bug The identity used to sign the executable is no longer valid 解决方案
    Entity FrameWork 增删查改的本质
    EF容器---代理类对象
    Entity FrameWork 延迟加载本质(二)
    Entity FrameWork 延迟加载的本质(一)
    Entity FrameWork 增删查改
  • 原文地址:https://www.cnblogs.com/yaozhenfa/p/2840484.html
Copyright © 2011-2022 走看看