综合示例

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

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

  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. git init 和 git init --bare 的区别

    http://blog.csdn.net/ljchlx/article/details/21805231 概念  裸仓储 :不可以在上面做git操作    the operation must be ...

  2. 分布式Hbase-0.98.4在Hadoop-2.2.0集群上的部署

    fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3898991.html Hbase 是Apache Hadoop的数据库,能够对大数据提 ...

  3. addClass() 和 toggleClass()

    addClass()是在原有的类基础上增加类属性,仍然保留原有的类的样式.语法格式为:addClass(class0 class1 ...) ,例如: $("p").addClas ...

  4. decimalFormat("#","##0.00") java

    importjava.text.DecimalFormat; publicclassTestNumberFormat{ publicstaticvoidmain(String[]args){ doub ...

  5. [原创]使用Pandoc实现Markdown文件转PDF文件

    Markdown写法简单明快,我十分喜欢,以至于我最近都想使用Markdown快速的进行测试说明书的写作,但是考虑到这文档是要进行交接的,一个.md的文件在内部传输还是有不便,于是就想到了能不能把Ma ...

  6. eclipse的ssh框架详解

    1.创建项目 2.导包 1.1:导入Struts2可能用到的包: 先从网站下载 再这里找出,打开它把WEB-INF/lib/下的所有包导入项目   1.2:导入spring可能用到的包: 先从网站下载 ...

  7. (学习网址)Python 自动化测试

    1.Python自动化测试地址 http://www.wtoutiao.com/author/python-selenium.html 2.unittest参考网址: 1)python自动化测试报告H ...

  8. Python环境下NIPIR(ICTCLAS2014)中文分词系统使用攻略

    一.安装 官方链接:http://pynlpir.readthedocs.org/en/latest/installation.html 官方网页中介绍了几种安装方法,大家根据个人需要,自行参考!我采 ...

  9. php数组函数

    1.键值函数 array_values()返回数组元素值,组成一个新的索引数组 2.array_keys()返回数组所有键名,组成一个索引数组 3.in_array()检查数组中是否存在某个值 4.a ...

  10. About-JavaOOAD

    软件工程三要素 方法:完成软件开发的各项任务的技术方法,为软件开发提供 “如何做” 的技术   工具:为运用方法而提供的自动的或半自动的软件工程的支撑环境   过程:为了获得高质量的软件所需要完成的一 ...