ADO.NET SQL
数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一
1.ADO.NET对象模型简介
2.ADO.NET中4个核心组件
对象 | 说明 | 特点 |
Connection | 建立于特定数据库的连接 | 可以自己创建,也可由其他对象自动产生(如DataAdapter) |
Command | 对数据源执行命令 | 透过Connection对象来下达命令,Connection的指向决定操作对象 |
DataAdapter | 用数据源中的查询结果填充DataSet对象 | DataAdapter填充到DataSet中的是断开连接的脱机数据 |
DataReader | 从数据源中读取只读的数据流 | DataReader读取数据必须在维持数据库连接的前提下进行 |
.
类 | SQL类 | OLE DB类 |
Connection | SqlConnection | OleDbConnection |
Command | SqlCommand | OleDbCommand |
DataAdapter | SqlDataAdapter | OleDbDataAdapter |
DataReader | SqlDataReader | OleDbDataReader |
关于两种类库的比较这一话题,作为入门暂时不做讨论,以后再做研究。
3.实例练习SQL Server.NET类库
1)SQL Server.NET类中库上述四个核心类的用法
SqlConnection (String) 如果给定包含连接字符串的字符串,则初始化 SqlConnection 类的新实例。
SqlCommand (String) 用查询文本初始化 SqlCommand 类的新实例。
SqlCommand (String, SqlConnection) 初始化具有查询文本和 SqlConnection 的 SqlCommand 类的新实例。
SqlCommand (String, SqlConnection, SqlTransaction) 使用查询文本、一个 SqlConnection 以及 SqlTransaction 来初始化 SqlCommand 类的新实例。
b.利用C#语言结合SQL Server .NET类库访问SQL Server 2008数据库
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Data;
- using System.Data.SqlClient;
- namespace SQLServerEx1
- {
- class Program
- {
- static void Main(string[] args)
- {
- const string connStr = "server=WANGDINGQIAO-PC;database =DBTest;Integrated Security =true";//连接字符串
- SqlConnection mySqlConnection = new SqlConnection();
- mySqlConnection.ConnectionString = connStr;//新建连接对象并设置其连接字符串属性
- string sqlStr = "select Sno ,Sname from tbl_Student";//SQL语句
- try
- {
- mySqlConnection.Open();//打开连接
- SqlCommand mycmd = new SqlCommand(sqlStr, mySqlConnection);//新建SqlCommand对象
- SqlDataReader sdr = mycmd.ExecuteReader();//ExecuteReader方法将 CommandText 发送到 Connection 并生成一个 SqlDataReader
- Console.WriteLine("学号 \t\t\t姓名");
- while (sdr.Read())
- {
- Console.WriteLine("{0}\t\t{1}", sdr[0], sdr[1]);//循环读取数据
- }
- sdr.Close();//读取完毕即关闭
- }
- catch (SqlException ex)
- {
- Console.WriteLine(ex.Message);
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- finally
- {
- mySqlConnection.Close();//关闭连接
- }
- }
- }
- }
运行结果:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Data;
- using System.Data.SqlClient;
- namespace SQLServerEx2
- {
- class Program
- {
- static void Main(string[] args)
- {
- const string connStr = "server=WANGDINGQIAO-PC;database =DBTest;Integrated Security =true";
- SqlConnection mySqlConnection = new SqlConnection(connStr);//新建连接对象
- string sqlStr = "select * from tbl_Student";//SQL语句
- try
- {
- mySqlConnection.Open();//打开连接
- SqlDataAdapter sda = new SqlDataAdapter(sqlStr, mySqlConnection);//新建SqlDataAdapter对象
- DataSet ds = new DataSet();//新建Dataset对象
- sda.Fill(ds);//填充DataSet对象
- Console.WriteLine("姓名\t\t性别");
- int cnt = ds.Tables[0].Rows.Count;//读取行数
- for (int ix = 0; ix != cnt; ++ix)
- Console.WriteLine("{0}\t\t{1}", ds.Tables[0].Rows[ix].ItemArray[1],
- ds.Tables[0].Rows[ix].ItemArray[2]);//循环读取数据 注意索引范围
- }
- catch (SqlException ex)
- {
- Console.WriteLine(ex.Message);
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- finally
- {
- mySqlConnection.Close();//关闭连接
- }
- }
- }
- }
4.利用C#语言结合OLE DB .NET类库访问SQL Server 2008数据库
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Data.OleDb;
- using System.Data;
- namespace SQLServerEx3
- {
- class Program
- {
- static void Main(string[] args)
- {
- const string connStr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;"
- +"Initial Catalog=DBTest;Data Source=WANGDINGQIAO-PC";
- OleDbConnection myOleDbConnection = new OleDbConnection(connStr);//新建连接对象
- string sqlStr = "select * from tbl_Student";//SQL语句
- try
- {
- myOleDbConnection.Open();//打开连接
- OleDbCommand mycmd = new OleDbCommand(sqlStr, myOleDbConnection);//新建OleDbCommand对象
- OleDbDataReader Olesdr = mycmd.ExecuteReader();//将 CommandText 发送到 Connection 并生成一个 OleDbDataReader
- Console.WriteLine("姓名 \t\t所在系");
- while (Olesdr.Read())
- {
- Console.WriteLine("{0}\t\t{1}", Olesdr[1], Olesdr[4]);//循环读取数据 注意索引值
- }
- Olesdr.Close();//读取完毕即关闭
- }
- catch (OleDbException ex)
- {
- Console.WriteLine(ex.Message);
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- finally
- {
- myOleDbConnection.Close();//关闭连接
- }
- }
- }
- }
5.利用C#语言结合第三方与.NET类库连接器 访问MySQL数据库
b.利用OLE DB.NET类库访问MySQL数据库
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using MySql.Data.MySqlClient;
- using System.Data;
- namespace MySQLEx
- {
- class Program
- {
- static void Main(string[] args)
- {
- string conString = "server=localhost; Database=DBTest;user id=root; password=root;";
- MySqlConnection mySqlConn = new MySqlConnection(conString);
- string sqlStr = "select * from tbl_Student";//SQL语句
- try
- {
- mySqlConn.Open(); ;//打开连接
- MySqlDataAdapter msda = new MySqlDataAdapter(sqlStr, mySqlConn);//新建MySqlDataAdapter对象
- DataSet ds = new DataSet();//新建Dataset对象
- msda.Fill(ds);//填充DataSet对象
- Console.WriteLine("姓名\t\t年龄");
- int cnt = ds.Tables[0].Rows.Count;//读取行数
- for (int ix = 0; ix != cnt; ++ix)
- Console.WriteLine("{0}\t\t{1}", turnString(ds.Tables[0].Rows[ix].ItemArray[1].ToString()),
- turnString(ds.Tables[0].Rows[ix].ItemArray[3].ToString()));//循环读取数据 注意索引范围
- }
- catch (MySqlException ex)
- {
- Console.WriteLine(ex.Message);
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- finally
- {
- mySqlConn.Close();//关闭连接
- }
- }
- //乱码解决 转换函数
- public static string turnString(string source)
- {
- var en = System.Text.Encoding.GetEncoding("latin1");
- var bs = en.GetBytes(source);
- var a = System.Text.Encoding.Default.GetString(bs);
- return a;
- }
- }
- }
运行结果:
6.参考资料
转载于:https://www.cnblogs.com/songlinux/p/5837565.html
ADO.NET SQL相关推荐
- 【C#:WinForm+ADO.NET+SQL Server实现验证码登录】
WinForm+ADO.NET+SQL Server实现验证码登录 1.最终效果 当用户输入的账户名.密码以及验证码都正确时,才可以登录系统.否则,提示相应的报错信息.下图为登录成功的效果. 2.解题 ...
- delphi使用ADO在sql数据库存取图片的方法
delphi使用ADO在sql数据库存取图片的方法 新手参考,老鸟绕行 我一直不认为能把代码写的和天书一样的程序员是好的程序员,那不过是因为我真的对delphi也就是略懂皮毛,太深了看不懂. 网上查询 ...
- VC++使用ADO连接SQL Server数据库
基本步骤: 1.创建一个基于对话框的应用程序ADODatabase. 2.创建一个用来连接的ADO类库.系统菜单中Insert->New Class项,class type选择Generic C ...
- 【转】MFC下用ADO连接SQL SERVER,保存图片,BLOB
使用ADO实现BLOB数据的存取 一.前言 在实际的开发过程中我们常常需要存储较大的二进制数据对象,比如:图像.音频文件. 或其它二进制数据,这些数据我们称之为二进制大对象BLOB(Binary La ...
- vc通过ADO连接sql server 2000的核心代码
建立一个mfc对话框工程,一切都默认然后完成,接下照我的方法做吧,一定可以的! 注: ***** 代表你所建立的工程名称 先在stdafx.h中导入#import " c:\program ...
- MFC开发之使用ADO连接SQL Server
"观千剑而后视器,操千曲而后晓声."--<文心雕龙> 最近在学C++一个框架--MFC,犯难了,搞了一周,阅读了不下百篇博主的文章,还询问了老师,重装了VS(甚至201 ...
- LabVIEW通过ADO连接SQL Server 方法二
数据库连接方法2 一.数据源配置 1. 打开ODBC数据源管理器,点击"添加" 2. 选择SQL Server,点击"完成" 3. 输入名称,并选择服务器,点击 ...
- MFC使用ADO连接SQL SERVER数据库实现的高校教材管理系统
摘 要 随着高校规模的扩大和教学的改革的深入,高校的教学水平和管理在稳步提高,而高校的教材管理环节起着为教学和科研提供软环境的重要作用,是与高校综合能力的增强相辅而成的.而现有的高校教材管理系统大多还 ...
- mfc中ado上传image到sql数据库
mfc中ado上传image到sql server数据库 一.关于mfc的使用就不在此献丑了,直接讲ado连接sql server数据库. 1.我采用的是连接方法是调用一个udl文件中的数据库配 ...
最新文章
- 基于WinCE的I2C驱动程序设计
- 电子书下载:Moving to Microsoft Visual Studio 2010
- python为什么中文要encoding-python 中文编码问题如何解决?
- Git Submodule
- 2.6 动量梯度下降法-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- vue.js2.0 新手开发_VueJs2.0建议学习路线
- keras:Sequential API 和 Function API
- oh-my-zsh upgrade problem
- Android一个自定义的进度环:ProgressChart
- java 数组赋值_自学JAVA每日记录(10)-欢迎指点欢迎共勉
- 揭秘 XR 开发难题,让虚拟现实不仅仅停留在好奇
- Java数据结构(1)---顺序表
- Linux支持运行3dmax,Mesa的Panfrost Gallium3D驱动程序现在可以使用新的DRM驱动程序
- 前端规范——前后端接口规范
- 通过网络爬虫采集大数据
- HMACSHA加密方法
- 五招教你做好企业年终绩效考核,太实用了!
- python爬取唐诗
- 为什么勒索软件攻击激增?
- STC89C52RC - 12 - 静、动数码管显示
热门文章
- 《统一沟通-微软-实战》-6-部署-2-中介服务器-1-定义中介服务器
- Delphi 的消息机制浅探三
- sql 备份.bat
- 20 个 Laravel Eloquent 必备的实用技巧
- 手机号中间四位处理为‘****’
- POJ 1733 Parity game(带权并查集)
- 夺命雷公狗---微信开发57----微网站之jquery_mobile之入门案例
- ElasticSearch大批量数据入库
- javascript jquery對form元素的常見操作
- Maatkit工具使用lt;一gt;之mysql主从数据校验工具