ADO.net是一门.net连接、操作数据库的技术
 

释放资源:凡是实现了idisposable借口的类都需要用using来释放资源

using()

{

}

连接数据库

  1. //创建数据库连接:
  2. usingSqlConnection conn=new SqlConnection("连接字符串"))//连接字符串
  3. {
  4. conn.open();//打开连接
  5. usingSqlCommand cmd =conn.CreateCommd())
  6. {
  7. cmd.CommadTest="sql 语句";
                ......

在线数据连接方式:

参数化查询:

  1. cmd.CommadText="select * from T_Student where name =@name add age=@age;"
  2.  
  3. cmd.Parameters.add(new SqlParameter("@name", txtName.text));//给参数赋值
  4.  
  5. cmd.Parameters.add(new SqlParameter("@age", Convert.ToInt32(txtAge.text)));//给参数赋值

ExcuteNonquery一般用于非查询语句(insert,delete,update)

  1. cmd.CommandText = "insert into T_a (name , age ) values (@name,@age);";
  2. cmd.Parameters.Add(new SqlParameter("@name", txtName.Text));
  3. cmd.Parameters.Add(new SqlParameter("@age", txtAge.Text));
  4. int count= cmd.ExecuteNonQuery();
  5. MessageBox.Show(count+"行受影响")

ExcuteScalar一般用与执行返回值只有一行一列的sql语句

  1. cmd.CommandText = "select age from T_a where Id=@id and name =@name;";
  2. cmd.Parameters.Add(new SqlParameter("@id", txtID.Text));
  3. cmd.Parameters.Add(new SqlParameter("@name", txtName.Text));
  4. try
  5. {
  6. string age = cmd.ExecuteScalar().ToString();
  7. MessageBox.Show(age);
  8. }
                        catch
                        {
                            MessageBox.Show("找不到匹配的值");
                        }

ExcuteReader用于sql查询语句,查询结果放在数据库中,占用服务器资源,返回类型为SqlDateReader类型

  1. cmd.CommandText = "select * from T_a;";
  2. SqlDataReader reader = cmd.ExecuteReader();
  3. while (reader.Read())
  4. {
  5. long id = reader.GetInt64(0);
  6. string name = reader.GetString(1);
  7. int age = reader.GetInt32(2);
  8. MessageBox.Show(id + "," + name + "," + age);
  9. }

离线数据连接方式:

Dataset查询结果读取到客户端本地,适合数据量较少的查询

  1.                     cmd.CommandText = "select * from T_a where name = @name;";
                        //参数化查询
                        cmd.Parameters .Add (new SqlParameter("@name",txtName.Text));
                        SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                        //创建Dataset数据集
                        DataSet dataset = new DataSet();
                        //将查询结果填入Dataset中
                        adapter.Fill(dataset);
                        DataTable table = dataset.Tables[0];
                        DataRowCollection rows = table.Rows;
                        //遍历每一行的值
                        foreach (DataRow row in rows )
                        {
                           long id = (long)row["id"];
                           string name = (string)row["name"];
                           int age = (int)row["age"];
                           MessageBox .Show (id+","+name+","+age);
                        }

ADO.net基础学习总结的更多相关文章

  1. ADO.net基础学习总结(二)

    将连接字符串放入配置文件中 1.添加一个“应用程序配置文件:app.config” <?xml version="1.0" encoding="utf-8" ...

  2. ADO.NET 基础学习笔记1

    1. ODBC.OLEDB.ADO.ADO.NET之间的关系 ODBC: 开放数据库互连(ODBC)是MICROSOFT提出的数据库访问接口标准.ODBC(Open DatabaseConnectiv ...

  3. ADO.NET基础学习 二(Command对象)

    ②command对象用来操作数据库.(三个重要的方法:ExecuteNonQuery(),ExecuteReader(),ExecuteScalar()) ⑴以update(改数据)为例,用到Exec ...

  4. ADO.NET基础学习 一(连接数据库)

    (记录下方便自己复习) 概念 简单地理解为用来连接数据库的类. 工作流程 ①Connection对象用来连接数据库. 两种连接方式:Windows身份验证 / sqlserver验证 private ...

  5. ADO.NET基础学习-----四种模型,防止SQL注入

    1.ExcuteNonQuery 执行非查询语句,返回受影响的行数. // 1.ExcuteNonQuery string sqlconn = "Data Source=wss;Initia ...

  6. 如鹏网学习笔记(六)ADO.Net基础

    ADO.Net基础 一.ADO.Net简介 1,程序要通过SQL语句自动化的操作数据库,必须要用一个类库, 类库要提供execute("insert into ...")/exec ...

  7. ADO.NET基础巩固-----连接类和非连接类

          最近的一段时间自己的状态还是不错的,早上,跑步,上自习看书,下午宿舍里面编程实战,晚上要么练习代码,要么去打球(在不打就没机会了),生活还是挺丰富的. 关于C#的基础回顾就先到前面哪里,这 ...

  8. C#/.NET 基础学习

    初识C# C#是微软公司发布的面向对象的.运行于.NET Framework之上的高级程序设计语言.与Java有着明显不同,借鉴Delphi的特点,与COM(组件对象模型)直接集成,是微软公司 .NE ...

  9. .Net Core 系列:2、ADO.Net 基础

    目录: 1.环境搭建 2.ADO.Net 基础 3.ASP.Net Core 基础 4.MD5.Sha256.AES 加密 5.实现登录注册功能 6.实现目录管理功能 7.实现文章发布.编辑.阅览和删 ...

随机推荐

  1. 利用boost获取时间并格式化

    利用boost来获取当前时间又方便快捷,还不用考虑跨平台的问题. 1. 输出YYYYMMDD #include <boost/date_time/gregorian/gregorian.hpp& ...

  2. CSS筛选器简单实例1

    1.通配符 <!--筛选器---通配符实例--> <!--支持IE7+ --> <style type="text/css"> *.all { ...

  3. Android系统,动态找出一个包下所有的类

    最近在写一个android应用,由于针对不同机型功能很不同,为了隔离变化,希望将各项功能插件化,通过编译开关来控制不同版本的功能,而不是在代码中通过逻辑来判断. 我想了一个办法,用表驱动的方法,结合插 ...

  4. java之package与import

    我就以package与import开始吧. package的作用其实就是c++的namespace的作用,防止名字相同的类产生冲突,只是实现的机制不一样,java编译器在编译时,直接根据package ...

  5. Spark2.0编译

    Spark2.0编译 1 前言 Spark2.0正式版于今天正式发布,本文基于CDH5.0.2的Spark编译. 2 编译步骤 #2.1 下载源码 wget https://github.com/ap ...

  6. poj2774 Long Long Message(后缀数组or后缀自动机)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Long Long Message Time Limit: 4000MS   Me ...

  7. 愉快的开始 - 零基础入门学习Python000

    愉快的开始 让编程改变世界 Change the world by program 为什么是Python 既然有各种各样的编程语言可以选择,小甲鱼为什么极力鼓励大家来学习Python呢? 跨平台哦亲 ...

  8. Super Jumping! Jumping! Jumping!(hdu 1087 LIS变形)

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  9. 玩转Firefox侧栏

    偶然看到煎蛋网的"玩转firefox侧栏",才注意到它. Firefox侧栏有啥不一样? Firefox可以在侧栏中打开网页. 于是,一系列玩法就出来了... 侧栏打开在线应用 G ...

  10. 利用ICommand和ITool重写Arcengine中控件的事件

    Arcengine窗体开发中,不同命令或者工具可能会触发同一控件的同一事件,这样会造成该事件中代码的混乱.以主窗体的AxMapcontrol控件为例,当开始画图时因为有很多种类型的Feature,所以 ...