使用C#和ADO.NET数据库访问技术,实现CRUD--20180127
2018-01-27 22:29
976 查看
ADO.NET是.NET Framework用于访问数据的组件。其优点是可以离线操作数据库,可以减少应用程序对服务器资源的占用,提高应用程序的效率。
ASP.NET通过ADO.NET操作数据库。
ADO.NET包含两大核心控件:1).NET Framework数据提供程序 2)DataSet数据集
ADO.NET处理数据库的步骤实现: 1)连接到数据库
2)连接到数据源
3)从数据源读取数据
4)对数据进行处理
实现对数据的读取和CRUD处理
1.使用Command对象+DataReader对象
2.使用DataAdapter+DataSet对象
下列代码实现了对数据的查询、增添、更新操作,删除操作与前面的三种操作类似,故没有列举出来。
在使用DataAda对象+DataSet对象实现对数据的操作的时候,应该注意以下两点:(1)对数据进行操作都会引起了数据的变化,但是这些操作可以被拒绝或接受。方法为:AcceptChanges()、RejectChanges()。(2)数据修改接受之后,只是DataSet里的数据发生了变化,要写回数据库还是需要调用DataAdapter对象的Update()方法,而且必须要有一个CommandBuilder对象来生成SQL语句。
ASP.NET通过ADO.NET操作数据库。
ADO.NET包含两大核心控件:1).NET Framework数据提供程序 2)DataSet数据集
ADO.NET处理数据库的步骤实现: 1)连接到数据库
2)连接到数据源
3)从数据源读取数据
4)对数据进行处理
实现对数据的读取和CRUD处理
1.使用Command对象+DataReader对象
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Data; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { ////使用Command命令 //连接数据库 string mycon = "data source=LAPTOP-OUL99L1B;database=student;Trusted_Connection=True"; SqlConnection conn = new SqlConnection(mycon); SqlCommand mycom = new SqlCommand(); //创建command对象 //CRUDByCommand(conn, mycom); //对数据进行插入操作 } private static void CRUDByCommand(SqlConnection conn, SqlCommand mycom)//利用command命令对数据库进行插入操作 { try { conn.Open();//打开数据库 //2从数据库中读取数据 string sql = "select * from Students Where Name=@Name";//string.Format("select * from Students Where Name='{0}'", name); myCom.CommandText = sql; myCom.Parameters.Add("@Name", SqlDbType.VarChar).Value = "sfdf"; SqlDataReader myReader = myCom.ExecuteReader(); while (myReader.Read())//判断是否有数据 { string ID = myReader["ID"].ToString(); string StudentNo = myReader["StudentNo"].ToString(); string Name = myReader["Name"].ToString(); Console.WriteLine("{0},{1},{2}", ID, StudentNo, Name); } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { conn.Close(); //关闭数据库连接 } } } }
2.使用DataAdapter+DataSet对象
下列代码实现了对数据的查询、增添、更新操作,删除操作与前面的三种操作类似,故没有列举出来。
在使用DataAda对象+DataSet对象实现对数据的操作的时候,应该注意以下两点:(1)对数据进行操作都会引起了数据的变化,但是这些操作可以被拒绝或接受。方法为:AcceptChanges()、RejectChanges()。(2)数据修改接受之后,只是DataSet里的数据发生了变化,要写回数据库还是需要调用DataAdapter对象的Update()方法,而且必须要有一个CommandBuilder对象来生成SQL语句。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Data; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //连接数据库 string mycon = "data source=LAPTOP-OUL99L1B;database=student;Trusted_Connection=True"; SqlConnection conn = new SqlConnection(mycon); ////使用DataSet对象 DataSet myDataSet = new DataSet(); //创建DataSet对象 //对数据进行修改操作 //string strsqlUpd; //strsqlUpd = UpdateByDataSet(conn, myDataSet); //对数据进行插入操作 InsertByDataSet(conn, myDataSet); } private static void InsertByDataSet(SqlConnection conn, DataSet myDataSet)//使用DataSet对象对数据进行插入处理 { string strsql; strsql = "select * from student"; SqlDataAdapter myDataAdapter = new SqlDataAdapter(strsql, conn); myDataAdapter.Fill(myDataSet, "student"); //输出表中的数据 PrintValues(myDataSet); Console.WriteLine(); //使用DataSet对象对数据进行插入 //CurrentModifyTbale = myDataSet.Tables[0]; DataRow addRow = myDataSet.Tables[0].NewRow(); addRow[0] = "20150808"; addRow[1] = "ynynhh"; myDataSet.Tables[0].Rows.Add(addRow); //将DataSet更新的数据同步更新到数据库中 SqlCommandBuilder cmdBld = new SqlCommandBuilder(myDataAdapter); myDataAdapter.Update(myDataSet,"student"); //输出修改后的表中的数据 Console.WriteLine("修改后的表:"); PrintValues(myDataSet); Console.ReadKey(); } private static string UpdateByDataSet(SqlConnection conn, DataSet myDataSet)//使用DataSet对象对数据进行修改处理 { string strsql; strsql = "select * from student"; SqlDataAdapter myDataAdapter = new SqlDataAdapter(strsql, conn); myDataAdapter.Fill(myDataSet, "student"); //输出表中的数据 PrintValues(myDataSet); Console.WriteLine(); //使用DataSet对象对数据进行修改 DataRow row1 = myDataSet.Tables[0].Rows[1]; row1.BeginEdit(); row1[0] = "20160107"; row1[1] = "ynn"; row1.EndEdit(); //将DataSet更新的数据同步更新到数据库中 SqlCommandBuilder cmdBld = new SqlCommandBuilder(myDataAdapter); myDataAdapter.Update(myDataSet, "student"); //输出修改后的表中的数据 Console.WriteLine("修改后的表:"); PrintValues(myDataSet); Console.ReadKey(); return strsql; } private static void PrintValues(DataSet myDataSet)//输出表中的数据 { foreach (DataTable table in myDataSet.Tables) { Console.WriteLine("表名称:" + table.TableName); foreach (DataRow row in table.Rows) { foreach (DataColumn column in table.Columns) { Console.Write(row[column] + " "); } Console.WriteLine(); } } } } }
相关文章推荐
- VC中使用ADO访问数据库技术程序实现方法
- VC中使用ADO访问数据库技术程序实现方法
- C#使用ADO.NET访问数据库(一)
- VC中使用ADO访问数据库技术程序实现方法
- C#使用安全权限验证 ADO.NET 代码访问
- 使用系统表根据存储过程名字生成ADO.NET数据库访问代码
- 在C#中使用ADO.Net部件来访问Access数据库
- 在C#中使用ADO.Net部件来访问Access数据库
- [转]C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
- C#数据库编程 之 ADO.NET的数据库访问小结
- 数据访问:使用 ADO.NET 的最佳实践(ADO.NET 技术文档)
- .NET下使用Oracle数据库、数据库访问技术(下)
- 使用ADO.NET访问数据库
- C#使用ADO.net连接数据库
- C#使用ADO.NET连接数据库简单代码实例
- 使用ADO.NET访问数据库
- 数据访问:使用 ADO.NET 的最佳实践(ADO.NET 技术文档)
- 使用系统表根据存储过程名字生成ADO.NET数据库访问代码
- 使用ADO操作SQL SERVER 通过'OLE DB 访问 ACCESS 数据库 ,实现数据交换
- 使用系统表根据存储过程名字生成ADO.NET数据库访问代码