1.Command对象查询数据库

 protected void Button1_Click(object sender, EventArgs e)
{
//读取web.config节点配置
string strcon = ConfigurationManager.ConnectionStrings["testjm"].ConnectionString;
//实例化sqlConnection对象
SqlConnection con = new SqlConnection(strcon);
//数据库建立连接打开
con.Open();
string strsql = "select * from userinfo where name=@name";//查询语句
SqlCommand mycmd = new SqlCommand(strsql, con);
mycmd.Parameters.Add("@name", SqlDbType.VarChar,).Value = TextBox1.Text.Trim();
SqlDataAdapter myda = new SqlDataAdapter(mycmd);//实例化SqlDataAdapter,把strsql查询语句通过con传递给数据库
DataSet myds = new DataSet();//实例化DataSet为myds
myda.Fill(myds, "userinfo");//填充数据集
GridView1.DataSource = myds;//界面上显示返回的数据集,指定数据源
GridView1.DataBind();//绑定数据库 myda.Dispose();
myds.Dispose(); con.Close();//关闭连接
}

2.Command对象添加数据

/// <summary>
/// 封装查询userinfo表信息
/// </summary>
protected void bind()
{ SqlConnection con = getcon();
//数据库建立连接打开
con.Open();
string strsql = "select * from userinfo";//查询语句
SqlDataAdapter myda = new SqlDataAdapter(strsql,con);
DataSet myds = new DataSet();
myda.Fill(myds);
GridView1.DataSource = myds;//界面上显示返回的数据集,指定数据源
GridView1.DataKeyNames = new string[] { "id" };
GridView1.DataBind();//绑定数据库
myda.Dispose();
myds.Dispose();
con.Close(); } /// <summary>
/// 封装数据库连接
/// </summary>
/// <returns></returns>
protected SqlConnection getcon()
{
//读取web.config节点配置
string strcon = ConfigurationManager.ConnectionStrings["testjm"].ConnectionString;
//实例化sqlConnection对象
SqlConnection con1 = new SqlConnection(strcon);
return con1;
}
/// <summary>
/// 添加数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btSumbit_Click(object sender, EventArgs e)
{
SqlConnection con = getcon();
//数据库建立连接打开
con.Open();
string strinsert = "insert into userinfo(id,name,password,age) values(" + this.tbid.Text.Trim() + ",'" + this.tbname.Text.Trim() + "','" + this.tbpwd.Text.Trim() + "'," + this.tbage.Text.Trim() + ")";
SqlCommand mycmd = new SqlCommand(strinsert, con);
mycmd.ExecuteNonQuery();
mycmd.Dispose();
con.Close();//关闭连接
this.bind();
}
/// <summary>
/// 添加数据中的重置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btReset_Click(object sender, EventArgs e)
{
tbid.Text = "";
tbname.Text = "";
tbpwd.Text = "";
tbage.Text = "";
}

3.Command对象修改数据

 /// <summary>
/// 单击编辑按钮,会触发RowEditing事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
this.bind();
}
/// <summary>
/// 更新数据,RowUpdating更新前的事件,RowUpdated更新后的事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int cid = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
string cName = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[].Controls[])).Text.ToString();
string cPwd = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[].Controls[])).Text.ToString();
string strupdate = "update userinfo set name='" + cName + "',password='"+ cPwd +"'where id=" + cid;
SqlConnection con = getcon();
con.Open();
SqlCommand mycmd = new SqlCommand(strupdate, con);
mycmd.ExecuteNonQuery();
mycmd.Dispose();
con.Close();//关闭连接
this.bind();
}
/// <summary>
/// 单击更新中的取消按钮,触发RowCancelingEdit事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -;
this.bind();
}

4.Command对象删除数据

 /// <summary>
/// 删除数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int cid = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
string strdelete = "delete from userinfo where id=" + cid;
SqlConnection con = getcon();
con.Open();
SqlCommand mycmd = new SqlCommand(strdelete,con);
mycmd.ExecuteNonQuery();
mycmd.Dispose();
con.Close();
this.bind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
((LinkButton)e.Row.Cells[].Controls[]).Attributes.Add("onclick", "return confirm('确定要删除这天数据吗 ?')");
}
}

使用command对象操作数据库的更多相关文章

  1. c# 数据库编程(利用DataSet 和 DataAdaper对象操作数据库--单表操作)

    一.概述 前面2篇文章,介绍了使用SqlCommand对象利用sql命令来操作数据库. 这篇文章我们来介绍使用c#的DataSet 和 DataAdaper对象操作操作数据库. 先来介绍下这两个对象是 ...

  2. c# 数据库编程(利用DataSet 和 DataAdaper对象操作数据库--跨表操作)

    上篇文章我们介绍了如何利用DataSet 和 DataAdaper对象来对单张表进行操作. 本文我们将介绍如何进行跨表操作. 我们通过具体例子方式进行演示,例子涉及到三张表. 1)student表(学 ...

  3. php 用封装类的方法操作数据库和批量删除

    封装类 <?php class DBDA { public $host="localhost"; //服务器地址 public $uid="root"; ...

  4. C#与数据库访问技术总结(六)之Command对象创建SQl语句代码示例

    Command对象创建SQl语句代码示例 说明:前面介绍了 Command 对象的方法和一些属性,回顾一下 Command对象主要用来执行SQL语句.利用Command对象,可以查询数据和修改数据. ...

  5. C#与数据库访问技术总结(五)之Command对象的常用方法

    Command对象的常用方法 说明:上篇总结了Command对象的几个数据成员,这节总结Command对象的常用方法. 同样,在不同的数据提供者的内部,Command对象的名称是不同的,在SQL Se ...

  6. 多线程下,多次操作数据库报错,There is already an open DataReader associated with this Command which must be closed first.

    原文:https://www.cnblogs.com/sdusrz/p/4433108.html 执行SqlDataReader.Read之后,如果还想用另一个SqlCommand执行Insert或者 ...

  7. Android学习笔记_9_SQLiteOpenHelper对象之数据库增删改查以及事务回滚操作

    一.SQLite数据库: 在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进 ...

  8. django之三剑客、静态文件配置、请求响应对象、数据库操作

    三剑客 from django.shortcuts import render,HttpResponse,redirect HttpResponse # 返回字符串 render(response, ...

  9. ADO.NET操作数据库(一)

    ---恢复内容开始--- [1]ADO.Net简介2015-12-07-20:16:05 ADO.Net提供对Microsoft SQL Server数据源以及通过OLE DB和XML公开的数据源的一 ...

随机推荐

  1. NBU官方Doc網址https://www.veritas.com/support/en_US/article.DOC5332

    NBU(NetBackup) 7.0之後的版本官方文檔鏈接地址: https://www.veritas.com/support/en_US/article.DOC5332

  2. ZooKeeper 的羊群效应

    一个需要避免的问题是当一个特定的znode 改变的时候ZooKeper 触发了所有watches 的事件. 举个例子,如果有1000个客户端watch 一个znode的exists调用,当这个节点被创 ...

  3. TCP 连接中断的判断

    关于TCP 3次握手,4次分手就不多说了.如何判断TCP连接是否中断是个大问题. 1 TCPKeep-alive 机制 并不是TCP 规范的一部分,实现细节差距大. 2 使用heartbeat 检测 ...

  4. WPF QuickStart系列之线程模型(Thread Model)

    这篇博客将介绍WPF中的线程模型. 首先我们先来看一个例子,用来计算一定范围内的素数个数. XAML: <Grid> <Grid.RowDefinitions> <Row ...

  5. 使用Visual Studio Code开发AngularJS应用

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:VSC发布之后,尤其最近刚刚更新到0.3之后,社区出现了很多介绍VSC使用的好文章.比 ...

  6. Java中synchronized详解

    synchronized 原则: 尽量避免无谓的同步控制,同步需要系统开销,可能造成死锁 尽量减少锁的粒度 同步方法 public synchronized void printVal(int v) ...

  7. python web编程-web客户端编程

    web应用也遵循客户服务器架构 浏览器就是一个基本的web客户端,她实现两个基本功能,一个是从web服务器下载文件,另一个是渲染文件 同浏览器具有类似功能以实现简单的web客户端的模块式urllib以 ...

  8. SQLServer 维护脚本分享(09)相关文件读取

    /********************[读取跟踪文件(trc)]********************/ --查看事件类型描述 SELECT tc.name,te.trace_event_id, ...

  9. sqlserver 作业调度(作业常用的几个步骤)

    --[作业常用的几个步骤] EXEC msdb.dbo.sp_delete_job EXEC msdb.dbo.sp_add_job EXEC msdb.dbo.sp_add_jobstep EXEC ...

  10. loadrunner获取本机的机器名称