互联网专线做网站怎么做数据,网站挂标 怎么做,中华保险网站,珠海正规网站制作系统目录
一、新建.NET Framwork类、通过ADO.NET访问数据库并生成库
1.操作流程
2.库源码
3.生成库
二、再建 .NET 7.0控制台应用、依赖像引用库
1. 操作流程
2.program.cs源码
3.在program.cs中查看类Class1定义 作者在上一篇文章中曾说过.NET 7.0框架下不支持ADO…目录
一、新建.NET Framwork类、通过ADO.NET访问数据库并生成库
1.操作流程
2.库源码
3.生成库
二、再建 .NET 7.0控制台应用、依赖像引用库
1. 操作流程
2.program.cs源码
3.在program.cs中查看类Class1定义 作者在上一篇文章中曾说过.NET 7.0框架下不支持ADO.NET的方法访问数据库只有.NET Framwork框架下的应用才完美地支持ADO.NET的方法访问数据库。 事实上.NET Framwork框架下使用ADO.NET的方法访问数据库就是微软让用户使用ADO.NET的实体框架模型为媒介去访问数据库通过ADO.NET建立实体数据模型简单易用极大简化了用户的编程操作。在.NET 7.0框架下微软没有提供这种类似的媒体通道因此用户也就不能像在.NET Framwork框架下那样便捷地、快速地建立一个实体框架然后籍此框架访问数据库。 .NET 7.0框架下虽然不提供直接的支持ADO.NET但不是说就一定不能使用ADO.NET只要用户使用编程的手段设计一个.NET Framwork框架下类似ADO.NET那样的功能的模型在这个模型里通过ADO.NET建立对数据库的访问然后生成.exe或.dll。再另外创建 .NET 7.0框架下应用在应用的外部依赖里添加引用指引到前面生成的.exe或.dll。就可以实现在 .NET 7.0框架下间接地通过ADO.NET建立对数据库的访问。
一、新建.NET Framwork类、通过ADO.NET访问数据库并生成库
1.操作流程 VS2022→ 新建C#类库.NET Framwork添加ADO.NET类指引到数据库→ 编写对数据库操作的应用→生成.dll。
2.库源码
using System;
using System.Linq;namespace ClassLibrary1
{public class Class1{public static string MyID, MyName, MySex, MyAge, MyTel, MyAddr, MyQQ, MyEmail;public void ReadFromSql(string _myID){//读数据库//_myID YGBH0001;ReadFrdb(_myID);}#region 通过ADO.NET读数据库/// summary/// 读数据库tb_Employee/// /summarystatic void ReadFrdb(string _myID){using (db_CSharpEntities db new db_CSharpEntities()){tb_Employee employee db.tb_Employee.Where(W W.ID _myID).FirstOrDefault();{MyID employee.ID;MyName employee.Name;MySex employee.Sex;MyAge employee.Age.ToString();MyTel employee.Tel;MyAddr employee.Address;MyQQ employee.QQ.ToString();MyEmail employee.Email;};Console.WriteLine(MyID,MyName,MySex,MyAge,MyTel,MyAddr,MyQQ,MyAge);}}//char[] tb_Employee new char[] { };#endregion 通过ADO.NET读数据库}
}3.生成库 生成库 ClassLibrary1.dll
二、再建 .NET 7.0控制台应用、依赖像引用库
1. 操作流程 VS2022→再建 .NET 7.0控制台应用→右侧资源管理器项目新建文件夹起名为bin→ bin的右键添加现有项找到上面生成的库文件ClassLibrary1.dll添加→项目依赖项添加项目引用浏览找到bin文件夹下的ClassLibrary1.dll添加→编写应用调用库文件→ 生成。
2.program.cs源码
// 在.NET7.0控制台应用里添加现有项Class1.cs,
// 在.NET7.0控制台应用依赖项里添加Class1.cs项目生成的dll库ClassLibrary1.dll
// 编写Program.cs应用
using System.Runtime.InteropServices; // 用 DllImport 需用此 命名空间
using System.Reflection; // 使用 Assembly 类需用此 命名空间
using System.Reflection.Emit; // 使用 ILGenerator 需用此 命名空间
using ClassLibrary1;namespace _10_6
{ class Program{private static void Main(){Class1 _Class new();_Class.ReadFromSql(YGBH0002); }}
}
3.在program.cs中查看类Class1定义
#region 程序集 ClassLibrary1, Version1.0.0.0, Cultureneutral, PublicKeyTokennull
// G:\C#_TM\chapter15\10_6\10_6\lib\ClassLibrary1.dll
// Decompiled with ICSharpCode.Decompiler 7.1.0.6543
#endregionusing System;
using System.Linq;namespace ClassLibrary1
{public class Class1{public static string MyID;public static string MyName;public static string MySex;public static string MyAge;public static string MyTel;public static string MyAddr;public static string MyQQ;public static string MyEmail;public void ReadFromSql(string _myID){_myID YGBH0001;ReadFrdb(_myID);}private static void ReadFrdb(string _myID){using db_CSharpEntities db_CSharpEntities2 new db_CSharpEntities();tb_Employee tb_Employee2 db_CSharpEntities2.tb_Employee.Where((tb_Employee W) W.ID _myID).FirstOrDefault();MyID tb_Employee2.ID;MyName tb_Employee2.Name;MySex tb_Employee2.Sex;MyAge tb_Employee2.Age.ToString();MyTel tb_Employee2.Tel;MyAddr tb_Employee2.Address;MyQQ tb_Employee2.QQ.ToString();MyEmail tb_Employee2.Email;Console.WriteLine(MyID, MyName, MySex, MyAge, MyTel, MyAddr, MyQQ, MyAge);}}
}由此可以看出在 .NET 7.0框架下通过上述操作果然间接地通过ADO.NET访问了数据库。虽然这种方法因个人设计的模型而不一定一次就成功但是这种通过.NET Framework媒介一下的思想一定是成功的。遭遇调试错误就修改自己的程序最后一定会成功。几个需要注意的地方框架的版本和ADO.NET版本要匹配框架的版本和依赖的EF程序包版本要匹配。