免费预览已结束,剩余3页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ADO.net操作数据库总结一用SqlConnection连接SQL Server 1.加入命名空间 using System.Data.SqlClient; 2.连接数据库 SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString = user id=sa;password=sinofindb;initial catalog=test;data source=;Connect Timeout=30; myConnection.Open(); 改进(更通用)的方法: string MySqlConnection=user id=sa;password=sinofindb;Database =test;data source=;Connect Timeout=30; SqlConnection myConnection = new SqlConnection(MySqlConnection); myConnection.Open(); 二。用OleDbConnection连接 1.加入命名空间 using System.Data.OleDb; 2.连接sql server string MySqlConnection=Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=test;Integrated Security=SSPI; SqlConnection myConnection = new SqlConnection(MySqlConnection); myConnection.Open(); 3.连接Access(可通过建立.udl文件获得字符串) string MySqlConnection=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:db2000.mdb; Persist Security Info=False; 4.连接Oracle(也可通过OracleConnection连接) string MySqlConnection=Provider=MSDAORA;Data Source=db; user id=sa;password=sinofindb; 三.创建Command对象 1SqlCommand 构造函数 初始化 SqlCommand 类的新实例。 public SqlCommand(); SqlCommand myCommand = new SqlCommand(); 初始化具有查询文本的 SqlCommand 类的新实例。public SqlCommand(string); String mySelectQuery = Select * FROM mindata; SqlCommand myCommand = new SqlCommand(mySelectQuery); 初始化具有查询文本和 SqlConnection 的SqlCommand类实例。 Public SqlCommand(string, SqlConnection); String mySelectQuery = Select * FROM mindata; string myConnectString = user id=sa;password=;database=test;server=mySQLServer; SqlConnection myConnection = new SqlConnection(myConnectString); SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection); 初始化具有查询文本、SqlConnection 和 Transaction 的 SqlCommand 类实例。 public SqlCommand(string, SqlConnection, SqlTransaction); SqlTransaction myTrans = myConnection.BeginTransaction(); String mySelectQuery = Select * FROM mindata; string myConnectString = user id=sa;password=;database=test;server=mySQLServer; SqlConnection myConnection = new SqlConnection(myConnectString); SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection, myTrans); 2.建立SqlCommand与SqlConnection的关联。 myCommand.Connection = myConnection; 或者:SqlCommand myCommand = myConnection.CreateCommand; 3设置SqlCommand的查询文本。 myCommand.CommandText = Select * FROM mindata; 或者第2种构造:SqlCommand myCommand = new SqlCommand(mySelectQuery); 给SqlCommand对象提供两个查询字符串,每个查询字符串访问不同的表,返回不同的结果集。两个查询语句用分号分隔。 4. 执行命令。 ExecuteReader 返回一行或多行 ExecuteNonQuery 对 Connection 执行 Transact-SQL 语句并返回受影响的行数(int) ExecuteScalar 返回单个值(如一个聚合值).返回结果集中第一行的第一列。忽略额外的列或行 ExecuteXmlReader 将 CommandText 发送到 Connection 并生成一个 XmlReader 对象。 SqlDataReader myReader = myCommand.ExecuteReader(); 或SqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); while(myReader.Read() /循环读取数据 Console.WriteLine(myReader.GetString(0);/ 获取指定列的字符串形式的值 Console.WriteLine(myReader. GetValue(1);/ 获取以本机格式表示的指定列的值 CommandText = select count(*) as NumberOfRegions from region; Int count = (int) myCommand.ExecuteScalar(); 关于OleDbCommand对象的使用。 四DataReader的使用 1遍历结果集 while (myReader.Read() Console.WriteLine(tt, myReader.GetInt32(0), myReader.GetString(1); myReader.Close(); 2使用序数索引器。 while (myReader.Read() Console.WriteLine(tt, myReader0.ToString(), myReader1.ToString(); myReader.Close(); 3使用列名索引器。 while (myReader.Read() Console.WriteLine(tt, myReadercode.ToString(), myReadername.ToString(); myReader.Close(); 4.使用类型访问器。 public char GetChar(int i); 获取指定列的单个字符串形式的值 public DateTime GetDateTime(int i); 获取指定列的 DateTime 对象形式的值 public short GetInt16(int i); 获取指定列的 16 位有符号整数形式的C# public string GetString(int i); 获取指定列的字符串形式的值ADO.net基本名词解释与学习记录(一)数据的规范化:是把数据尽可能的分解到多个表上,最小化重复相同数据的次数。ADO.net的主要对象元素:数据源:通常指的是一个关系数据库,如SQLserver等托管的数据供应程序:提供数据仓库通信的功能 如ODBC等Connection对象:建立一个页面程序与数据库驱动的通信管道Command对象:一个包含读写数据指令的工具DataReader/DataSet对象:存储已读出或写入数据的地方.Net控件:主要指Connection对象:主要用于连接数据源通过Open()方法打开连接字符串中的连接连接字符串包含3各部分的信息: 第一部分指定要使用的供应程序或驱动程序的种类 /server=localhost 第二部分指定要使用的数据库 /database=Mydatabase 第三部分通常包含安全信息,包括用户名,密码等 /uid=foolboy;pwd=MypasswdCommand对象和DataReader:读取和修改数据Command用法:objCommand = new OleDbCommand(strSQL,objConnection);objDbDataReader = objCommand.ExecuteReader();DataReader:存储数据读取方法 DataReaderFIELD数据绑定:是在数据源和数据使用者创建一个连接的过程。主要是指绑定到DataGrid上DataReader的局限: 只能读取数据,不能修改数据 只能向前循环数据 只能处理一个表的数据DataSet是他的替代品还是DataTable?他们的主要区别?DataSet和DataTable对象DataSet表示数据库中的数据,与DataReader不同它可以存储几个表和他们之间的关系。在使用表示主要要用到下面4各对象: DataTable: 表示表本身 DataSet: 核心对象,建立多表之间的adhoc关系,可以一表中的一行和另一表的一行关联起来 DataAdapter: 用于结果从Connection传给Dataset。Fill()方法把数据拷贝到DataSet中, Update()方法把DataSet中的数据烤回数据源。 DataView: 表示DataSet中存储的DataTables的特定视图 DataGrid: 等的DataSource最终只绑定到某具体DataView上ADO.net关于SQL Server的对象sqlConnectionsqlCommandsqlDataAdapter数据异常处理常见问题: 代码包含对不存在的ADO.NET对象的引用 代码请求的数据为NULL不存在 代码的连接字符串错误 包含不存在的列或表的引用 没有提供正确的UserID和Password 代码是用语法不正确的SQl语句 网络问题导致数据库连接问题处理方法:利用 try .catch捕获错误信息更新数据方法问题: 如何更新?我们的修改都是基于断开连接的,如果将修改后的结果写入数据库中? 如何处理同步更新?两个人先后对更新了同一数据,怎么办?结果会被覆盖么?DataSet & DataTable & DataRow关系如下所示:- |DataSet | |-| | | DataTable | | | | | |-| | | |DataRow | | | |-| | | |DataRow | | | |-| | |-| | |-|DataTable = DataSet.TablesTName;DataRow = DataTable.Rows;string strFirstName = DataRow0FirstName;这里的更新的实质都是对数据集DataSet的更新方法,没有涉及到对数据源的更新更新操作思路:1.添加记录 (添加行)添加记录首先需要声明两个变量 DataTable ,DataRow其中DataTable需要实例化到具体的数据集中的某个tableDataRow = DataTable.NewRow()声明为Table的新Row再对DataRow进行赋值,调用DataTable.Rows.Add(DataRow)即可2.修改纪录 (编辑行)首先声明一个变量 DataRow objRows用来存储要编辑的行objRows = DataTable.Select(查询条件);如果是一行,可以这样 objRows = DataTable.Rows3;再对其进行修改 如 objRows0FIELD1=objRows0FIELD2=3.删除纪录如下 DataTable.Rows5.Delete();推想:应该可以这样,首先申明一个变量 DataRow objRows 用来存储要删除的行objRows = DataTable.Select(查询条件);ADO.net基本名词解释与学习记录(二)更新数据源的方法1,Command对象更新需要的属性:Connection包含数据仓库连接的细节CommandText 要运行的命令CommandType 命令的类型 Sql字符或存储过程的名称Text 表示文本字符串sqlTableDirect 表示表名StoredProcedure 表示存储过程的名称ParametersParameters对象的一个集合2,DataAdapter对象注意DataAdapter和Command的区别? Command主要用于运行命令 DataAdapter主要用于为多个命令提供一个存储空间,在数据仓库和DataSet之间提供双向交互。哦,一个Command对象只能处理查询,添加,删除,修改中的一种因此 DataAdapter用四个属性存储四种Command对象属性如下 SelectCommand,UpdateCommand,InsertCommand,DeleteCommand3,CommandBuilder对象OleDbCommandBuilder objBuilderobjBuilder = new OleDbCommandBuilder(DataAdapter)表示告诉命令生成器可以在哪儿取到SelectCommand,以建立其他的命令.DataAdapter.UpdateCommand = objBuilder.GetUpdateCommand();DataAdapter.InsertCommand = objBuilder.GetInsertCommand();DataAdapter.DeleteCommand = objBuilder.GetDeleteCommand();注意在这种情况下,SelectCommand必需带有一个主键字段4.DataAdapter.Update()DataAdapter.Update(DataSet,Tablesname);例如,以下代码确保首先处理表中已删除的行,然后处理已更新的行,然后处理已插入的行。C#DataTable updTable = custDS.TablesCustomers;/ First process deletes.custDA.Update(updTable.Select(null, null, DataViewRowState.Deleted);/ Next process updates.custDA.Update(updTable.Select(null, null, DataViewRowState.ModifiedCurrent);/ Finally, process inserts.custDA.Update(updTable.Select(null, null, DataViewRowState.Added);其中DataViewRowState数据视图的操作属性 包括Deleted, ModifiedCurrent,Added,Unchanged等至此,更新数据仓库工作完成。使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于项目合作进展的联系函8篇
- 感恩师长珍惜友谊小学主题班会课件
- TCSNAME 100-2025 智能机舱机械状态监测与健康评估系统测试验证要求
- 建筑幕墙安装施工质量控制标准操作手册
- 单元10 伦理思辨:AIGC的社会责任与挑战
- 环保行动:美丽地球从我做起小学主题班会课件
- 2026年客户服务体验提升计划讨论邀请函3篇范本
- 2025年共享单车运维人员培训计划制定
- 客户服务投诉处理标准流程
- 小学主题班会课件:规则与责任快乐成长的基石
- 2024年港口流体装卸工职业技能竞赛理论考试题库-上(单选题)
- 我国牛病流行的现状及对策
- 20G361 预制钢筋混凝土方桩
- (MHT)中学生心理健康诊断测验
- GB/T 24437-2023假肢、矫形器配置机构的等级划分与评定
- 频波斜率鉴频电路设计
- 四川省成都市大邑县2023年数学五年级第二学期期末考试试题含解析
- 金属陶瓷基复合材料
- GB/T 17880.6-1999铆螺母技术条件
- 科孚德变频器prowind-uce故障排查方法
- 《消防安全技术实务》课本完整版
评论
0/150
提交评论