SqlCommand类

转载于:http://blog.csdn.net/dyufei/article/details/4987281

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

转载于:https://www.cnblogs.com/Visualize/archive/2012/10/03/2710685.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值