综合示例

  说明:前面介绍了那么多,光说不练假把式,还是做个实例吧。

  表:首先你要准备一张表,这个自己准备吧。我们以学生表为例。

  1ExecuteScalar方法

    ExecuteScalar方法执行返回单个值的命令。例如,如果想获取Student数据库中表studentInfo的学生的总人数,则可以使用这个方法执行SQL查询:

    Select count(*) from studentInfo .

(1) 建立Windows Application 应用程序

(2) 在Form1上添加一个按钮Button控件和一个标Label签控件

(3) 双击按钮,自动进入代码编辑界面

  首先添加命名空间: using System.Data.SqlClient;

(4)编写按钮的Click事件的处理事件代码:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace DataBase

{

  public partial class Form1 : Form

{

public Form1()

{

  InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

  try

  {

    //定义命令文本

    string commandText = "select count(*) from studentInfo";

    //定义连接字符串

    string connString="server=(local);Initial Catalog=Student;Integrated Security=SSPI;";

    //string connString= "server=(local);user id=sa;Initial Catalog=Student;pwd=;";

    //定义Connection对象

    SqlConnection conn = new SqlConnection();

    //设置Connection对象的ConnectionString属性

    conn.ConnectionString = connString;

    //新建Command对象,此时conn对象并不需要打开连接

    SqlCommand cmd = new SqlCommand(commandText, conn);

    //打开连接

    conn.Open();

    //执行命令,返回结果

    string count = cmd.ExecuteScalar().ToString();

    //记得关闭连接

    conn.Close();

    this.label1.Text = "共有" + count + "位学生!";

}

catch (Exception ex)

{

    MessageBox.Show("数据库连接失败" + ex.Message);

}

    }

  }

}

  执行结果界面如图:

  

分析代码:

第1步是引入命名空间:System.Data.SqlClient,表示将使用SQL Server.NET 数据提供程序: using System.Data.SqlClient;

第2步是 按钮button1_Click单击事件中首先新建立了连接并设置了其连接字符串属性:

string connString="server=(local);Initial Catalog=Student;Integrated Security=SSPI;";

//string connString= "server=(local);user id=sa;Initial Catalog=Student;pwd=;";

//定义Connection对象

SqlConnection conn = new SqlConnection();

//设置Connection对象的ConnectionString属性

conn.ConnectionString = connString;

第三步,新建Command 对象,并将命名文本和连接对象传递给其构造函数:

SqlCommand cmd = new SqlCommand(commandText, conn);

其中,commandText为最初定义的命名文本:

string commandText = "select count(*) from studentInfo";

此时conn对象没有打开,因为这不是必须的。

第四步 现在需要执行操作了,所以首先要打开连接,然后执行操作:

conn.Open();

string count = cmd.ExecuteScalar().ToString();

由于ExecuteScalar()方法返回类型为object,因此使用了ToString()方法将其转换为string以后赋值给count。

注意:一般使用ExecuteScalar()方法时都必须用到类型转换。

第五步数据库访问完毕以后应该立即关闭连接,这是一个好习惯:

corm.Close();

第六步最后将读取的信息通过label1显示出来:

this.label1.Text="共有"+count+"位学生!";

上面的代码中并没有指定Command对象的CommandType属性,这时CommandType的值将为默认的Text,当然也可以通过如下代码显示指定其类型,但这不是必须的。

cmd.CommandType=CommandType.Text;

C#与数据库访问技术总结(七)综合示例的更多相关文章

  1. C#与数据库访问技术总结(十八)

    ADO.NET 代码综合示例 前面已经介绍过OLE DB.NET和SQL Server.NET数据提供者可以用来连接不同的数据源. 以下代码不仅综合演示了使用ADO.NET的这两种数据提供者访问数据库 ...

  2. C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看

    数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键 ...

  3. 数据库访问技术 odbc dao rdo uda jet oledb

    一.UDA(UniversalDataAccess) 这是微软提供的通用数据访问策略.包括ADO.OLEDB和ODBC.它不光提供了数据库的访 问能力,对于其它的数据存储技术也同样支持,如目录服务.E ...

  4. c# 窗体开发4 数据库访问技术

    ADO.NET的名称起源于ADO(ACTIVEX DATA OBJECTS) USING SYSTEM; USING SYSTEM.COLLECTIONS.GENERIC; USING SYSTEM. ...

  5. C#与数据库访问技术总结(十七)

    使用DataSet对象访问数据库 当对DataSet对象进行操作时,DataSet对象会产生副本,所以对DataSet里的数据进行编辑操作不会直接对数据库产生影响,而是将DataRow的状态设置为ad ...

  6. C#与数据库访问技术总结(十六)之 DataSet对象

    DataSet对象 DataSet对象可以用来存储从数据库查询到的数据结果,由于它在获得数据或更新数据后立即与数据库断开,所以程序员能用此高效地访问和操作数据库. 并且,由于DataSet对象具有离线 ...

  7. C#与数据库访问技术总结(十三)之DataReader对象

    DataReader对象与数据获取 DataReader对象以“基于连接”的方式来访问数据库. 也就是说,在访问数据库.执行SQL操作时,DataReader要求一直连在数据库上. 这将会给数据库的连 ...

  8. C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例

    DataAdapter对象代码示例 下面的代码将说明如何利用DataAdapter对象填充DataSet对象. private static string strConnect=" data ...

  9. C#与数据库访问技术总结(十四)之DataAdapter对象

    DataAdapter对象 DataAdapter对象主要用来承接Connection和DataSet对象. DataSet对象只关心访问操作数据,而不关心自身包含的数据信息来自哪个Connectio ...

随机推荐

  1. spi 子系统

    http://blog.csdn.net/ropenyuan/article/details/42269641 http://blog.chinaunix.net/uid-27406766-id-33 ...

  2. gradle教程 [原创](eclipse/ADT下 非插件 非Android Studio/AS)纯手打 第一篇:安装配置gradle

    一个bug 一个脚印的叫你们用gradle. 1介于网络上的很多资料都是老的 不适用与现在的新版本gradle 尤其是有些gradle方法改名了老的用不了 2介于网上都是粘贴复制并且零碎我很蛋疼啊,走 ...

  3. Servlet调用过程整理

  4. #import、#include以及@class的区别

    一.#import和#include的区别 当我们在代码中使用两次#include的时候会报错:因为#include相当于拷贝头文件中的声明内容,所以会报重复定义的错误 但是使用两次#import的话 ...

  5. java多线程-Java中的Copy-On-Write容器

    Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改, ...

  6. C# 使用js正则表达式,让文本框只能输入数字和字母,最大长度5位

    使用js正则表达式,让文本框只能输入数字和字母,最大长度5位,只需要加个onkeyup事件,即可简单实现 <asp:TextBox ID="txtBegin" runat=& ...

  7. Floyd | | jzoj[1218] | | [Usaco2009 Dec]Toll 过路费 | | BZOJ 1774 | | 我也不知道该怎么写

    写在前面:老师说这一道题是神题,事实上确实如此,主要是考察对Floyd的理解 ******************************题目.txt************************* ...

  8. Android学习--摘录

    今天准备开始毕业设计--做一个android应用.无奈android基础木有一点,以前做过一个蓝牙应用,不过对android各方面的知识还是不懂啊,今天在android主页上看英文的android开发 ...

  9. UITableViewCell重用的问题

    UITableView中有两种重用Cell的方法: - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier; - (id)dequ ...

  10. php pdo预处理语句与存储过程

    很多更成熟的数据库都支持预处理语句的概念.什么是预处理语句?可以把它看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制.预处理语句可以带来两大好处: 1.查询仅需解析(或预处理) ...