执行数据库操作命令对象SqlCommand

数据库应用程序的开发流程一般主要分为以下几个步骤:

  1. 创建数据库
  2. 使用Connection对象连接数据库
  3. 使用Command对象对数据源执行SQL命令并返回数据源的数据
  4. 使用DataReader和DataSet对象读取和处理数据源的数据

使用Connection对象成功创建数据库连接后,接下来就可以使用Command对象对数据源执行查询、添加、删除和修改等各种SQL命令了。

SqlCommand对象用来对SQL Server数据库执行操作命令
属性说明
CommandText获取或设置要执行的SQL语句或存储过程
Connection获取或设置Command对象所要连接的Connection对象
CommandTimeout获取或设置命令等待执行的超时时间,默认值为30秒
Parameters获取与该命令关联的参数集合
CommandType获取或设置命令的种类,默认值为Text
SqlCommand对象的主要方法
方法说明
Cancel结束执行SQL语句
Dispose关闭Command对象,并释放所占用的系统资源
ExecuteScalar用于执行查询语句,并返回单一值或者结果集中的第一条记录的第一个字段的值。该方法适合只要一个结果的查询,例如使用Sum、Avg、Max、Min等函数的SQL语句
ExecuteNonQuery用于执行SQL语句,并返回SQL语句所影响的行数。该方法一般用于执行insert、delete、update等语句
ExecuteReader用于执行查询语句,并返回一个DataReader类型的行集合

1. ExecuteNonQuery方法,执行更新操作,如与 insert、delete 和 update 语句有关的操作

SqlConnection con = new SqlConnection();
con.ConnectionString ="连接字符串";
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "数据更新命令";
con.Open();
com.ExecuteNonQuery();  //执行Command命令
con.Close();

2. ExecuteReader方法,通常与查询命令 select 一起使用,并返回一个数据读取器对象 SqlDataReader 类的一个实例。

SqlConnection con = new SqlConnection();
con.ConnectionString = "连接字符串";
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "查询语句";
con.Open();
SqlDataReader sdr = com.ExecuteReader();
while(sdr.Read()){
   Response.Write(sdr[0]);  //输出第一个字段的内容
}
con.Close();

3. ExecuteScalar方法,如果只想检索数据库信息中的一个值,而不需要返回表或数据流形式的数据,即可使用此方法。例如只需要返回count(*)、avg(价格)、sum(数量)等函数的结果就可以使用此方法。

SqlConnection con = new SqlConnection();
con.ConnectionString = "连接字符串";
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "select avg(价格) from 你的表";
con.Open();
Response.Write(com.ExecuteScalar());  //输出第一个字段的内容
con.Close();

【例】使用SqlComman对象增加数据库数据,将注册信息插入数据库中

protected void btnRegister_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\ASUS\Desktop\案例\EBookShop\App_Data\ShopBookDB.mdf;Integrated Security=True;User Instance=True";
        SqlCommand com = new SqlCommand();
        com.Connection = con;
        com.CommandText = string.Format("insert into users(user_name,password,sex,age,email,createDate) values('{0}','{1}','{2}','{3}','{4}','{5}')",txtName.Text.Trim(),txtPwd.Text.Trim(),rbFemale.Checked?"男":"女",txtAge.Text.Trim(),txtEmail.Text.Trim(),DateTime.Now.ToShortDateString());
        con.Open();
        com.ExecuteNonQuery();
        try {
            Response.Write("<script>alert('注册成功')</script>");
            con.Close();
        }
        catch(Exception){
            Response.Write("<script>alert('数据库无法连接')</script>");
            con.Close();
        }
        
    }
    来自大神博客:https://www.cnblogs.com/yankyblogs/p/6870138.html

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值