• 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();

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

  • 相关阅读:
    C#Socket发16进制以及进制转换
    WPF跨线程操作UI界面控件
    DispatcherTimer和Timer的区别
    C#等比列放大缩小图片
    计算进项税
    AX 中通过SqlServer数据库刷数据
    AX中日期的常用方法
    从AX2012系统批量生成CSV格式数据
    装箱单过发票
    导入CSV文件乱码
  • 原文地址:https://www.cnblogs.com/yaozhenfa/p/2840484.html
Copyright © 2020-2023  润新知