zoukankan      html  css  js  c++  java
  • SqlCommand类

    1、创建SqlCommand对象

    SqlCommand cmd = new SqlCommand(SQLCMD, CON);

    SQLCMD为SQL命令语句,CON为打开的数据库连接(即打开的SqlConnection类对象)。创建SqlCommand 类对象之前应打开SqlConnection连接。

    2、执行命令

    command类提供的执行命令的方法有很多,下面只介绍最常用的三个方法。

    ExecuteNonQuery() 执行命令但不返回任何结果集(唯一返回语句执行所影响的行数),如果调用有输出参数的存储过程则返回值。(一般用于 Insert Updata Delete等不需要返回结果集的SQL语句)

    ExecuteReader() 执行命令,返回一个类型化的IDataReader(即返回SQL语句执行后生成的结果集)。一般用于Select等返回结果集的SQL语句。

    ExcuteScalar() 执行命令返回一个值(执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。)

    例1:

    string ConString = @"Server=duanyf//sqlexpress;" + "Datebase= FamilyInformationManagement;" + "Integrated Secrety =SSPI";
    SqlConnection con = new SqlConnection(ConString);
    con.Open();
    SqlCommand Cmd = new SqlCommand("DELETE * FROM User WHERE UserID =123", con);
    Cmd.ExecuteNonQuery();
    con.Close();

    3、常用的属性

    CommandText 设置要对执行的 SQL 语句、表名或存储过程名。默认值为空字符串。(如果CommandType 属性为 StoredProcedure 或TableDirect 时CommandText中表名或存储过程名如果包含特殊字符则用转义符语法设置)。

    CommandType 设置如何解释CommandText 值(即设置CommandText所代表的含义)。有三个选项(StoredProcedure 存储过程名,

    TableDirect表名,Text SQL文本命令),默认为Text。

    CommandTimeout 获取或设置等待命令执行的时间(以秒为单位)。默认为 30 秒。( 0 表示无限制,会无限期地等待执行命令)。(当对上下文连接(要用连接字符串中的“context connection=true”打开的 SqlConnection)执行命令时,CommandTimeout 将不起作用)。

    Parameters 设置SQL语句或存储过程的参数。(如果参数与赋的值不匹配则会报错)。

    例:

    例2:(使用CommandText 属性重写例1)
        string ConString = @"Server=duanyf//sqlexpress;" + "Datebase= FamilyInformationManagement;" + "Integrated Secrety =SSPI";
        SqlConnection con = new SqlConnection(ConString);
        con.Open();
        SqlCommand Cmd = new SqlCommand();
        Cmd.CommandText = "DELETE * FROM User WHERE UserID =123";
        Cmd.CommandType=CommandType.Text; //默认为Text,此行可以不用
        Cmd.CommandTimeout = 15;
        Cmd.ExecuteNonQuery();
        con.Close();

    例3:(转义符语法设置 重写例1)

    (1)使用new SqlParameter

    int UserID=123;
    string ConString = @"Server=duanyf//sqlexpress;" + "Datebase= FamilyInformationManagement;" + "Integrated Secrety =SSPI";
    SqlConnection con = new SqlConnection(ConString);
    con.Open();
    SqlCommand Cmd = new SqlCommand("DELETE * FROM User WHERE UserName =@UserName", Con);
    SqlParameter Parm = new SqlParameter(@UserID, SqlDbType.Int);
    Parm.Value = UserID;
    Cmd.Parameters.Add(SqlParm);
    Cmd.ExecuteNonQuery();
    con.Close();

    (2)不使用new SqlParameter

    int UserID=123;
    string ConString = @"Server=duanyf//sqlexpress;" + "Datebase= FamilyInformationManagement;" + "Integrated Secrety =SSPI";
    SqlConnection con = new SqlConnection(ConString);
    con.Open();
    SqlCommand Cmd = new SqlCommand("DELETE * FROM User WHERE UserName =@UserName", Con);
    Cmd.Parameters.Add(@UserID, SqlDbType.Int);
    Cmd.Parameters[@UserID].Value = UserID;
    Cmd.Parameters.Add(SqlParm);
    Cmd.ExecuteNonQuery();
    con.Close();

  • 相关阅读:
    C程序中的raise和kill两个函数有何不同?
    修改目录proc下的tcp_tw_recycle报“只读文件系统”
    运行程序时报错“Value too large for defined data type”
    服务网格代理Envoy入门
    Docker入门之创建镜像初步
    联想笔记本上Ubuntu无线网卡问题
    Docker入门之安装Docker
    Python错误“ImportError: No module named MySQLdb”解决方法
    GLIBC中的库函数fflush究竟做了什么?
    Win10删除电脑3D对象等7个文件夹
  • 原文地址:https://www.cnblogs.com/dyufei/p/2573964.html
Copyright © 2011-2022 走看看