C#与数据库访问技术总结(七)综合示例
综合示例
说明:前面介绍了那么多,光说不练假把式,还是做个实例吧。
表:首先你要准备一张表,这个自己准备吧。我们以学生表为例。
1、ExecuteScalar方法
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#与数据库访问技术总结(七)综合示例的更多相关文章
- C#与数据库访问技术总结(十八)
ADO.NET 代码综合示例 前面已经介绍过OLE DB.NET和SQL Server.NET数据提供者可以用来连接不同的数据源. 以下代码不仅综合演示了使用ADO.NET的这两种数据提供者访问数据库 ...
- C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看
数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键 ...
- 数据库访问技术 odbc dao rdo uda jet oledb
一.UDA(UniversalDataAccess) 这是微软提供的通用数据访问策略.包括ADO.OLEDB和ODBC.它不光提供了数据库的访 问能力,对于其它的数据存储技术也同样支持,如目录服务.E ...
- c# 窗体开发4 数据库访问技术
ADO.NET的名称起源于ADO(ACTIVEX DATA OBJECTS) USING SYSTEM; USING SYSTEM.COLLECTIONS.GENERIC; USING SYSTEM. ...
- C#与数据库访问技术总结(十七)
使用DataSet对象访问数据库 当对DataSet对象进行操作时,DataSet对象会产生副本,所以对DataSet里的数据进行编辑操作不会直接对数据库产生影响,而是将DataRow的状态设置为ad ...
- C#与数据库访问技术总结(十六)之 DataSet对象
DataSet对象 DataSet对象可以用来存储从数据库查询到的数据结果,由于它在获得数据或更新数据后立即与数据库断开,所以程序员能用此高效地访问和操作数据库. 并且,由于DataSet对象具有离线 ...
- C#与数据库访问技术总结(十三)之DataReader对象
DataReader对象与数据获取 DataReader对象以“基于连接”的方式来访问数据库. 也就是说,在访问数据库.执行SQL操作时,DataReader要求一直连在数据库上. 这将会给数据库的连 ...
- C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例
DataAdapter对象代码示例 下面的代码将说明如何利用DataAdapter对象填充DataSet对象. private static string strConnect=" data ...
- C#与数据库访问技术总结(十四)之DataAdapter对象
DataAdapter对象 DataAdapter对象主要用来承接Connection和DataSet对象. DataSet对象只关心访问操作数据,而不关心自身包含的数据信息来自哪个Connectio ...
随机推荐
- C# 关于时间
1.2016/7/8 00:10:10 转换成 2016-07-08T 00:10:10 在用VB动态调用WevService的时候,传入的时间格式为2016/7/8 00:10:10,导致调用出错, ...
- [整理][LaTex]小技巧之——首行缩进
0. 简介 在LaTex编辑时,有时会遇到这样一个有关于首行缩进的问题.在汉语环境的编辑下,习惯上每段会进行一个两个字的缩进.但是在默认编辑模式下,一个章节下的首段是没有首行缩进的,本文的目的主要是解 ...
- 【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程
[前提] 想要实现使用某种语言,比如Python,C#等,去实现模拟登陆网站的话,首先要做的事情就是使用某种工具,去分析本身使用浏览器去登陆网页的时候,其内部的执行过程,内部逻辑. 此登陆的逻辑过程, ...
- php 递归函数的三种实现方式
递归函数是我们常用到的一类函数,最基本的特点是函数自身调用自身,但必须在调用自身前有条件判断,否则无限无限调用下去.实现递归函数可以采取什么方式呢?本文列出了三种基本方式.理解其原来需要一定的基础知识 ...
- eclipse里面设置JVM参数的问题
在run----run configuration---Agruments里面设置JVM的参数: -Xms256m -Xmx1024m 肯定还有别的方式设置,今天就先写这一种方法.待续...
- Maven学习之 Settings
虽然天天在用,但是没有系统的学习过,总觉得别扭. 只能用于Java项目. 约定: repository 翻译成 仓库 build 翻译成 构建 build system 翻译成 构建系统 build ...
- PoEdu - C++阶段班- Lesson07 To Lesson10_C to C++
07 重载导致的二义性 问题:为什么一定要重载呢?重载能方便我们注重函数的功能,当参数类型不确定时,我们能很便捷的利用重载的机制达到目的. 重载注意点:二义性 看代码: #include <c ...
- python 高阶函数与装饰器
高阶函数定义1.函数接收的参数是一个函数名2.函数的返回值是一个函数名以上两者满足任意一个,就是高阶函数装饰器定义本质就是函数,功能是为其他函数添加新功能 装饰器的原则 1.不修改被装饰函数的源代码( ...
- oracle 安装注意
1. 本地安装oracle数据库后,并不代表可以用plsql 连接上了.. 如果安装的是64位的oracle,plsql 是不能直接连接的.. 2. 如果是64位的..需要下载一个oracle 客户端 ...
- freeCodeCamp:Check for Palindromes
如果给定的字符串是回文,返回true,反之,返回false. 如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文). 注意你需要去掉字符串多 ...