一、插入登录框中用户输入的动态数据

 /// <summary>
/// 添加数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnConnectDB_Click(object sender, EventArgs e)
{
//得到文本框的值
string classname = this.textClassName.Text;
string byname = this.textByName.Text;
//连接数据库
string connectString = "server=.;database=StudentMISDB;uid=sa;pwd=123456";
//创建数据库命令
SqlConnection conn = new SqlConnection(connectString);
//打开数据库
conn.Open();
//插入数据
string sql = string.Format("insert into Course values('{0}','{1}')",classname,byname);
//进行连接
SqlCommand cmd = new SqlCommand(sql,conn);
int count = cmd.ExecuteNonQuery();
conn.Close();
if(count>){
MessageBox.Show("插入成功");
}
else
{
MessageBox.Show("插入失败");
}
//conn.Close();
}

二、修改数据库中的数据

  /// <summary>
/// 修改数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnUpDateDB_Click(object sender, EventArgs e)
{
//获取输入框文本值
string className = this.textClassName.Text;
string byName = this.textByName.Text;
//创建数据库连接字符
string connectstring = "server=.;database=StudentMISDB;uid=sa;pwd=123456";
//创建数据库连接对象
SqlConnection con = new SqlConnection(connectstring);
//打开数据库
con.Open();
//创建数据库要执行的代码
string sql = string.Format("update Course set Name='{0}',ByName='{1}' where CourseId=2",className,byName);
//创建数据库命令的对象
SqlCommand cmd=new SqlCommand(sql,con);
int count = cmd.ExecuteNonQuery();//返回影响的行数
//关闭数据库
con.Close();
//MessageBox.Show("好了");
if (count > )
{
MessageBox.Show("修改成功");
}
else
{
MessageBox.Show("修改失败");
}
}

三、连接式查询数据库数据,并在listbox中展示出来

  private void btnChaXun_Click(object sender, EventArgs e)
{
//创建数据库链接字符串
string connstring = "server=.;database=StudentMISDB;uid=sa;pwd=123456";
//链接数据库
SqlConnection conn = new SqlConnection(connstring);
conn.Open();
//数据库要执行的语句
string sql = "select * from Course where CourseID>3";
//要执行的命令
SqlCommand cmd = new SqlCommand(sql,conn);
//读取数据
SqlDataReader reader = cmd.ExecuteReader(); //读取数据
//循环读取
while (reader.Read()) //表示前进到下一行记录,返回值为布尔类型,如果下一条有数据,返回true,没有数据,就返回false
{
//将读取到的数据添加到listbox中显示
this.listBoxChaxun.Items.Add(reader[].ToString()+"\t"+reader[].ToString() + "\t" + reader[].ToString()); //分别读取第一列、第二列、第三列
}
//关闭读取
reader.Close();
//关闭数据库
conn.Close();
}

四、断开式查询数据

        private void btnDKcheck_Click(object sender, EventArgs e)
{
string connString = "server=.;database=StudentMISDB;uid=sa;pwd=123456"; //创建数据库连接字符串
SqlConnection conn = new SqlConnection(connString); //创建连接对象
string sql = "select * from Course"; //数据库要执行的操作
//创建断开式连接对象
SqlDataAdapter adapter = new SqlDataAdapter(sql,conn);
//创建数据集对象
DataSet ds = new DataSet();
//填充数据集
adapter.Fill(ds);
foreach (DataRow item in ds.Tables[].Rows) //遍历输出值
{
listBoxChaxun.Items.Add(item[].ToString()+"\t"+item[].ToString()+"\t"+item[].ToString());
}
}

五、链接式查询和断开式查询方法的区别和总结

连接查询:

1.一直访问数据库,直到数据被读取完成才会终止;

2.执行效率非常高,从上到下依次读取,但是在之前读取过的数据,不能重新读取。

断开式查询:

1.通过SqlDataAdapter 把数据库中的数据,映射到 DataSet 中,但是对内存开支太大,执行效率也比较低;

2.比较灵活,可以根据不同的条件,对DataSet中的数据进行再次筛选;

3.对数据库中连接池中的资源的释放比较及时;

4.当 需要查询海量的数据时,必须要经过优化。【优化的方法:分页、存储过程分页】

C# ADO.NET动态数据的增删改查(第五天)的更多相关文章

  1. Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查

    本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...

  2. Mybatis框架基于注解的方式,实对数据现增删改查

    编写Mybatis代码,与spring不一样,不需要导入插件,只需导入架包即可: 在lib下 导入mybatis架包:mybatis-3.1.1.jarmysql驱动架包:mysql-connecto ...

  3. dbutils中实现数据的增删改查的方法,反射常用的方法,绝对路径的写法(杂记)

    jsp的三个指令为:page,include,taglib... 建立一个jsp文件,建立起绝对路径,使用时,其他jsp文件导入即可 导入方法:<%@ include file="/c ...

  4. MVC模式:实现数据库中数据的增删改查功能

    *.数据库连接池c3p0,连接mysql数据库: *.Jquery使用,删除时跳出框,确定是否要删除: *.使用EL和JSTL,简化在jsp页面中插入的java语言 1.连接数据库 (1)导入连接数据 ...

  5. Hibernate3回顾-5-简单介绍Hibernate session对数据的增删改查

    5. Hibernate对数据的增删改查 5.1Hibernate加载数据 两种:get().load() 一. Session.get(Class arg0, Serializable arg1)方 ...

  6. Mybatis学习总结(二)—使用接口实现数据的增删改查

    在这一篇中,让我们使用接口来实现一个用户数据的增删改查. 完成后的项目结构如下图所示: 在这里,person代表了一个用户的实体类.在该类中,描述了相关的信息,包括id.name.age.id_num ...

  7. 数据的增删改查(三层)<!--待补充-->

    进行数据操作必然少了对数据的增删改查,用代码生成器生成的代码不是那么满意!方便在今后使用,这里就主要写“数据访问层(Dal)” 既然这里提到三层架构:有必要将三层内容在这里详细介绍一下(待补充) 注: ...

  8. vue实现对表格数据的增删改查

    在管理员的一些后台页面里,个人中心里的数据列表里,都会有对这些数据进行增删改查的操作.比如在管理员后台的用户列表里,我们可以录入新用户的信息,也可以对既有的用户信息进行修改.在vue中,我们更应该专注 ...

  9. Node.js + MySQL 实现数据的增删改查

    通过完成一个 todo 应用展示 Node.js + MySQL 增删改查的功能.这里后台使用 Koa 及其相应的一些中间件作为 server 提供服务. 初始化项目 $ mkdir node-cru ...

随机推荐

  1. P3383 【模板】线性筛素数 洛谷

    https://www.luogu.org/problem/show?pid=3383#sub 题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输 ...

  2. [bzoj 1093][ZJOI2007]最大半联通子图(强联通缩点+DP)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1093 分析: 首先肯定是先把强联通全部缩成一个点,然后成了一个DAG 下面要知道一点: ...

  3. BZOJ(1) 1003 [ZJOI2006]物流运输

    1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 9404  Solved: 4087[Submit][Stat ...

  4. sql-server-storage-internals

    https://www.simple-talk.com/sql/database-administration/sql-server-storage-internals-101/

  5. 最短的计算大数乘法的c程序

    #include <stdio.h> char s[99],t[99]; int m,n; void r(int i,int c) { int j=0,k=i; while(k)c+=s[ ...

  6. MVC路由中特殊URL匹配规则

    *匹配*用来匹配URL剩余部分 贪婪匹配规则贪婪匹配会找到最后一个符合条件的“字面量”为止

  7. 躁动不安的const

    就是用来恐吓你的 我能想到的,最短的.且const最多的一个语句是: int const * fun(int const*const a[],const int index)const; 而这个语句还 ...

  8. Wireshark 抓包遇到 you don’t have permission to capture on that device mac 错误的解决方案

    Wireshark 抓包遇到 you don’t have permission to capture on that device mac 错误的解决方案 上次有篇博客讲了如何利用wireshark ...

  9. python 验证码 高阶验证

    python 验证码 高阶验证 标签: 验证码python 2016-08-19 15:07 1267人阅读 评论(1) 收藏 举报  分类: 其他(33)    目录(?)[+]   字符型图片验证 ...

  10. 第14章4节《MonkeyRunner源代码剖析》 HierarchyViewer实现原理-装备ViewServer-port转发

    在初始化HierarchyViewer的实例过程中,HierarchyViewer会调用自己的成员方法setupViewServer来把ViewServer装备好,那么我们这里先看下这种方法: 39 ...