火车k750,川村里佳,legacylan
在.net世界,如果想要对数据库进行操作,总少不了ado.net的身影。在.net core里同样离不开那些熟悉的类库与api。这里简略地介绍下如何通过ado.net对sql server进行不同的处理。
第一步先在项目工程中查看有无system.data.sqlclient引用,如果没有的话,可以用以下三种方式安装:
install-package system.data.sqlclient
dotnet add package system.data.sqlclient
可以使用最基础的executereader方法:
using (var conn = new sqlconnection("server=.;integrated security=true")) { conn.open(); using (var cmd = new sqlcommand("select top 10 * from [adventureworks2016ctp3].[person].[person]", conn)) { using (var reader = cmd.executereader()) { while (reader.read()) { console.writeline(reader["firstname"]); } } } }
在.net core 2.0以后还可以使用sqldataadapter与dataset,看得出微软在向后兼容方面做了不少工作:
using (var conn = new sqlconnection("server=.;integrated security=true")) { var adapter = new sqldataadapter("select top 10 * from [adventureworks2016ctp3].[person].[person]", conn); var dataset = new dataset(); adapter.fill(dataset); var dt = dataset.tables[0]; foreach (var item in dt.rows) { var row = item as datarow; console.writeline(row["firstname"]); } }
using (var conn = new sqlconnection("server=.;integrated security=true")) { conn.open(); using (var cmd = new sqlcommand("insert into [adventureworks2016ctp3].[person].[addresstype] (name) values(@name)", conn)) { cmd.parameters.addwithvalue("@name", "test"); cmd.executenonquery(); } }
using (var conn = new sqlconnection("server=.;integrated security=true")) { conn.open(); using (var cmd = new sqlcommand("update [adventureworks2016ctp3].[person].[addresstype] set name = @name where name = @criterion", conn)) { cmd.parameters.addwithvalue("@name", "test2"); cmd.parameters.addwithvalue("@criterion", "test"); cmd.executenonquery(); } }
using (var conn = new sqlconnection("server=.;integrated security=true")) { conn.open(); using (var cmd = new sqlcommand("delete [adventureworks2016ctp3].[person].[addresstype] where name = @name", conn)) { cmd.parameters.addwithvalue("@name", "test2"); cmd.executenonquery(); } }
using (var conn = new sqlconnection("server=.;integrated security=true")) { conn.open(); using (var cmd = new sqlcommand("[adventureworks2016ctp3].[dbo].[uspgetemployeemanagers]", conn)) { cmd.commandtype = commandtype.storedprocedure; cmd.parameters.addwithvalue("@businessentityid", 10); using (var reader = cmd.executereader()) { while (reader.read()) { console.writeline(reader["firstname"]); } } } }
使用上与普通的数据表没有差别。
using (var conn = new sqlconnection("server=.;integrated security=true")) { conn.open(); using (var cmd = new sqlcommand("select top 10 * from [adventureworks2016ctp3].[humanresources].[vemployee]", conn)) { using (var reader = cmd.executereader()) { while (reader.read()) { console.writeline(reader["firstname"]); } } } }
以上代码例子里的数据库使用的是adventureworks databases and scripts for sql server 2016 ctp3
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论