使用ADO.NET进行数据库update和alter之间的区别添加的核心步骤是什么?

1、ado.net技术概述 ado.net是一组允许.net开发人员使用标准的,结构化的,甚至无连接的方式与数据交互的技术。使用ado.net技术可以使用一致的访问方式操作多种数据源,包括数据库、xml、excel等。ado.net与ado是两种截然不同的数据访问技术,ado使用ole db接口基于微软com技术,而ado.net拥有自己的ado.net接口并且基于微软的.net技术。ado.net包含两组重要的类:DataSet类提供独立于任何数据源的数据访问,由一些DataTable的集合组成;DataProvider作为数据提供程序,负责与外部数据源的通信,具体操作包括连接数据库、执行命令和检索结果。.net在ado.net的基础上还提供了ef、linq等技术来简化数据的访问。 2、.net数据提供程序 .net数据提供程序的核心组件包括Connection对象、Command对象、DataReader对象、DataAdapter对象、Parameter对象、ConnectionStringBuilder对象和CommandBuilder对象等。Connection对象负责与数据源的连接。 Command对象负责执行sql查询。 DataReader对象负责只读的数据查询。DataAdapter对象是DataSet和数据源之间的桥梁,DataAdapter利用Command执行sql查询,将数据加载进DataSet,同时确保DataSet的数据变更与数据源保持一致。 Parameter对象定义了命令和存储过程的输入、输出和返回参数。ConnectionStringBuilder对象用于创建和管理由Connection对象使用的连接字符串的内容。CommandBuilder对象自动生成DataAdapter对象的命令属性InsertCommand、UpdateCommand 和 DeleteCommand。 不同的数据源使用不同的.net数据提供程序。(1)用于 SQL Server 的数据提供程序,提供对 Microsoft SQL Server 7.0 或更高版本中数据的访问。使用 System.Data.SqlClient 命名空间。用于 SQL Server 的数据提供程序使用自己的协议与 SQL Server 进行通信。它轻量且性能良好。支持本地事务和分布式事务。 (2)用于 OLE DB 的数据提供程序,提供对使用 OLE DB 公开的数据源中数据的访问。使用 System.Data.OleDb 命名空间。用于 OLE DB 的数据提供程序通过 COM 互操作使用本机 OLE DB 来启用数据访问。支持本地事务和分布式事务。 如Microsoft Access数据库。 (3)用于 ODBC 的数据提供程序,提供对使用 ODBC 公开的数据源中数据的访问。使用 System.Data.Odbc 命名空间。用于 ODBC 的数据提供程序使用本机 ODBC 驱动程序管理器 (DM) 来启用数据访问。 支持本地事务和分布式事务。 (4)用于 Oracle 的数据提供程序,适用于 Oracle 数据源。用于 Oracle 的 .NET Framework 数据提供程序支持 Oracle 客户端软件 8.1.7 和更高版本,并使用 System.Data.OracleClient 命名空间。通过 Oracle 客户端连接软件启用对 Oracle 数据源的数据访问。 该数据提供程序支持 Oracle 客户端软件 8.1.7 版或更高版本。 该数据提供程序支持本地事务和分布式事务两者。 (5)EntityClient 提供程序,提供对实体数据模型 (EDM) 应用程序的数据访问。使用 System.Data.EntityClient 命名空间。3、连接字符串 ado.net使用连接字符串来连接数据库,连接字符串需要提供数据源在哪里,使用什么样的数据格式,使用什么样的访问信任级别等连接信息。 (1)Sql Server的连接字符串Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
或者
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;//不可信连接
或者
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;//可信连接
或者
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;//可信连接
1234567(2)Access连接字符串Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;
1(3)MySql连接字符串Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
1(4)DB2连接字符串Server=myAddress:myPortNumber;Database=myDataBase;UID=myUsername;PWD=myPassword;
1(5)Oracle连接字符串Data Source=TORCL;User Id=myUsername;Password=myPassword;
1连接字符串可以写死在代码中,也可以配置在配置文件中,也可以使用DbConnectionStringBuilder来构造。SqlClient.SqlConnectionStringBuilder builder = new SqlClient.SqlConnectionStringBuilder();
builder.DataSource = @"(local)\SQLEXPRESS";
builder.InitialCatalog = "myDataBase";
builder.IntegratedSecurity = true;
12344、Connection对象 (1)概述 Connection对象使用连接字符串访问数据源。不同的数据源有不同的连接对象。SqlConnection用于SQL Server的连接对象;OleDbConnection用于OleDb数据源的连接对象;OdbcConnection是用于ODBC数据源的连接对象;OracleConnection是用于Oracle数据库的连接对象。所有连接对象均继承自抽象类DbConnection。DbConnection类继承Compoent类,实现IDbConnection,IDisposable接口,该类封装了连接数据库的很多重要的方法和属性。 (2)Connection对象提供的方法Open()方法用于打开数据库连接。 Close()方法用于关闭数据库连接或者释放连接到连接池,还会回滚事务操作。Dispose()释放连接使用的资源。(3)Connection对象提供的属性Database:获取数据库的名称。 DataSource:获取数据库服务器的名称。 ConnectionTimeOut:获取数据库的连接超时。ConnectionString:获取或设置用于打开连接的字符串。State:获取连接状态。State是一个枚举对象,具有Closed(连接处于关闭状态)、Open(连接处于打开状态)、Connecting(连接对象正在与数据源连接)、Executing(连接对象正在执行命令)、Fetching(连接对象正在检索数据)、Broken(与数据源的连接中断)。5、数据库连接池 创建数据库连接对象时可以指定是否使用数据库连接池,同时指定数据库连接池的最小和最大连接数。数据库连接池负责创建空闲的连接、移除无效的连接以及回收使用完的连接。使用数据库连接池可以避免重复创建及关闭数据库连接操作,提高数据库连接的使用效率,提高数据库操作的性能。连接使用完需要调用Connection对象的Close()或Dispose()方法将连接释放进连接池。SqlConnectionStringBuilder connStr = new SqlConnectionStringBuilder();
connStr.DataSource = @".\SQLEXPRESS";
connStr.InitialCatalog = "master";
connStr.IntegratedSecurity = true;
connStr.Pooling = true; //开启连接池
connStr.MinPoolSize = 0; //设置最小连接数为0
connStr.MaxPoolSize = 50; //设置最大连接数为50
connStr.ConnectTimeout = 10; //设置超时时间为10秒
using( SqlConnection conn = new SqlConnection(connStr.ConnectionString))
{
;//todo
}
1234567891011126、Command对象 (1)概述 Command对象封装了所有对外部数据源的操作(增、删、改、查及存储过程),并在执行完成后返回合适的结果。对于不同的数据源使用不同的Command对象。OleDbCommand对象用于 OLE DB 的数据源; SqlCommand对象用于 SQL Server数据库;OdbcCommand 对象用于 ODBC 的数据源;OracleCommand 对象用于Oracle数据库。所有对象均继承自抽象类DBCommand,DBCommand类继承Component类,实现IDbCommand, IDisposable接口。 (2)Command对象提供的方法ExecuteNonQuery()方法执行不返回数据行的操作,返回一个int型数据。ExecuteReader()方法执行查询返回DataReader对象。ExecuteScalar()方法执行查询返回结果集中的第一行第一列数据。Command对象提供了对应的异步方法,如ExecuteNonQuery()方法对应的异步方法是BeginExecuteNonQuery()和EndExcuteNonQuery()。 (3)Command对象提供的属性CommandText属性:获取或设置需要执行的文本命令。 CommandType属性:设置命令类型,为一个枚举值,可以设置为:Text(SQL文本命令)、StoredProcedure(存储过程)、 TableDirect(表的名称)。Connection属性:获取或设置数据库连接。 Parameters属性:绑定SQL语句或存储过程的参数。Tranaction属性:获取或设置事务对象。7、Parameter对象 (1)概述 Parameter对象定义了命令和存储过程的输入、输出和返回参数。对于不同的数据源来说,Parameter对象不同。SQLServer 数据源使用SqlParamter对象;Ole DB 数据源使用OleDbParameter对象;ODBC 数据源使用OdbcParamter对象;Oracle数据源使用OracleParameter对象。它们均继承自DbParameter对象。 (2)Parameter对象提供的属性DbType属性: 获取或设置参数的数据类型。 Direction属性:获取或设置一个值,该值指示参数是否只可输入、只可输出、双向还是存储过程返回值参数。 IsNullable属性:获取或设置一个值,该值指示参数是否可以为空。 ParamteterName属性: 获取或设置DbParamter的名称。 Size属性:获取或设置列中数据的最大大小。Value属性: 获取或设置该参数的值。8、DataAdapter对象 (1)概述 DataAdapter对象是外部数据源与本地DataSet之间的桥梁,将从外部数据源检索到的数据合理正确的调配到本地的DataSet中,同时将本地DataSet的数据更新同步到数据库,并执行更新命令。 (2)DataAdapter对象提供的属性SelectComand属性:获取或设置用于在数据源选择记录的命令。UpdateCommand属性:获取或这只用于更新数据源中的记录的命令。DeleteCommand属性:获取或设置用于从数据源中删除记录的命令。InsertCommand属性:获取或设置用于将新记录插入数据源中的命令。(3)DataAdapter对象提供的方法Fill()方法:填充数据集。 Update()方法:更新数据源。

项目
11/01/2023
适用范围:Visual Studio Visual Studio for Mac Visual Studio Code注意数据集和相关类是 2000 年代初的旧 .NET Framework 技术,使应用程序能够在应用程序与数据库断开连接时处理内存中的数据。 它们对于使用户能够修改数据并持续更改回数据库的应用程序特别有用。 虽然数据集已被证明是一项非常成功的技术,但我们建议新的 .NET 应用程序使用 Entity Framework Core。 实体框架提供了一种更自然的方式来将表格数据作为对象模型,并且具有更简单的编程接口。“N 层”数据应用程序是指用于访问数据且分为多个逻辑层(或“多层”)的应用程序。 通过将应用程序组件分离到相对独立的层中,可以提高应用程序的可维护性和可伸缩性。 该结构之所以具有这种优点,是因为它有利于采用可应用于单个层而无需重新设计整个解决方案的新技术。 N 层体系结构包括一个表示层、一个中间层和一个数据层。 中间层通常包括数据访问层、业务逻辑层和共享组件(例如身份验证和验证)。 数据层则包括关系数据库。 N 层应用程序通常将敏感信息存储在中间层的数据访问层中,目的是将它们与访问表示层的最终用户隔离。 请参阅 N 层数据应用程序概述,了解更多相关信息。在 N 层应用程序中,分离各层的一种方法是为要包括在应用程序中的每一层创建相互独立的项目。 类型化数据集包含一个 DataSet Project 属性,该属性决定了生成的数据集和 TableAdapter 代码应归属到哪些项目中。本演练演示如何使用“数据集设计器”将数据集和 TableAdapter 代码分离到相互独立的类库项目中。 分离数据集和 TableAdapter 代码后,将创建 Visual Studio 中的 Windows Communication Foundation 服务和 WCF 数据服务服务,以调用数据访问层。 最后,将创建一个 Windows 窗体应用程序并将其用作表示层。 该层将访问数据服务中的数据。在本演练期间,你将要执行以下步骤:新建将包含多个项目的 N 层解决方案。
将两个类库项目添加到 N 层解决方案中。
使用“数据源配置”向导创建类型化数据集。
将生成的 TableAdapters 和数据集代码分离到相互独立的项目中。
创建 Windows Communication Foundation (WCF) 服务以调入数据访问层。
在服务中创建函数以从数据访问层检索数据。
创建 Windows 窗体应用程序来充当表示层。
创建绑定到数据源的 Windows 窗体控件。
编写代码以填充数据表。
先决条件要完成本教程,需要在 Visual Studio 中安装“.NET 桌面开发”以及“数据存储和处理”工作负载。 若要安装这些程序,请打开 Visual Studio 安装程序,然后在要修改的 Visual Studio 版本旁选择“修改”(或“更多”>“修改”)。 请参阅修改 Visual Studio。本演练使用 SQL Server Express LocalDB 和 Northwind 示例数据库。如果尚未安装 SQL Server Express LocalDB,可以从 SQL Server Express 下载页或通过 Visual Studio 安装程序安装。 在 Visual Studio 安装程序中,可以将 SQL Server Express LocalDB 作为 .NET 桌面开发工作负载的一部分或作为单个组件进行安装 。
按照以下步骤安装 Northwind 示例数据库:
在 Visual Studio 中,打开“SQL Server 对象资源管理器”窗口。 (在 Visual Studio 安装程序中 SQL Server 对象资源管理器作为数据存储和处理工作负载的一部分安装。)展开 SQL Server 节点
。 右键单击 LocalDB 实例并选择“新建查询”。
此时将打开查询编辑器窗口。
将 Northwind Transact-SQL 脚本复制到剪贴板。 此 T-SQL 脚本从头开始创建 Northwind 数据库并用数据填充它。
将 T-SQL 脚本粘贴到查询编辑器中,然后选择“执行”按钮。
不久后,查询完成运行并且 Northwind 数据库创建完成。
在 Visual Studio 中,打开“SQL Server 对象资源管理器”窗口。 (在 Visual Studio 安装程序中 SQL Server 对象资源管理器作为数据存储和处理工作负载的一部分安装。)展开 SQL Server 节点
。 右键单击 LocalDB 实例并选择“新建查询”。
如果看不到 LocalDB 实例,请使用工具栏按钮“添加 SQL Server”。 此时,将显示“导入” 对话框。 在对话框中,展开“本地”并选择“MSSQLLocalDB”。 输入适当的凭据。 可以保留数据库的默认选项。
选择“连接”。 为“SQL Server 对象资源管理器”中的 LocalDB 添加节点。
右键单击 LocalDB 实例并选择“新建查询”。
此时将打开查询编辑器窗口。
将 Northwind Transact-SQL 脚本复制到剪贴板。 此 T-SQL 脚本从头开始创建 Northwind 数据库并用数据填充它。
将 T-SQL 脚本粘贴到查询编辑器中,然后选择“执行”按钮。
不久后,查询完成运行并且 Northwind 数据库创建完成。
创建 N 层解决方案和用于保存数据集的类库 (DataEntityTier)本演练的第一步是创建一个解决方案和两个类库项目。 第一个类库将保存数据集(生成的类型化 DataSet 类以及将保存应用程序数据的数据表)。 此项目将用作应用程序的数据实体层,它通常位于中间层内。 数据集创建初始数据集,并自动将代码分离到两个类库中。注意请确保已正确命名项目和解决方案,然后再单击“确定”。 这样做可使你更轻松地完成本演练。创建 N 层解决方案和 DataEntityTier 类库在 Visual Studio 中,使用适用于 C# 或 Visual Basic 的 Windows 窗体应用 (.NET Framework) 项目模板创建项目。 不支持 .NET Core、.NET 5 及更高版本。
将项目命名为“DataEntityTier”。
将解决方案命名为“NTierWalkthrough”,然后选择“确定” 。
创建包含 DataEntityTier 项目的 NTierWalkthrough 解决方案并将其添加到“解决方案资源管理器”中。
创建用于保存 TableAdapter 的类库 (DataAccessTier)创建 DataEntityTier 项目后,下一步是创建另一个类库项目。 此项目将保存生成的 TableAdapter,它称为应用程序的“数据访问层”。 数据访问层包含连接到数据库所需的信息,通常位于中间层内。创建用于 TableAdapter 的单独类库右键单击“解决方案资源管理器”中的解决方案,然后选择“添加”>“新建项目”。
选择“类库 (.NET Framework)”项目模板。
将项目命名为“DataAccessTier”,然后选择“确定” 。
DataAccessTier 项目即被创建并添加到 NTierWalkthrough 解决方案中。
创建数据集下一步是创建类型化数据集。 通过单个项目中的数据集类(包括 DataTables 类)和 TableAdapter 类创建类型化数据集。 (所有类都将生成到单个文件中。)在将数据集和 TableAdapter 分离到不同的项目中时,移到另一个项目中的是数据集类,TableAdapter 类则留在原始项目中。 因此,应在最终包含 TableAdapter 的项目(DataAccessTier 项目)中创建数据集。 使用“数据源配置向导”来创建数据集。注意你必须具有对 Northwind 示例数据库的访问权限,才能创建连接。 有关如何设置 Northwind 示例数据库的信息,请参阅如何:安装示例数据库。创建数据集在“解决方案资源管理器”中选择“DataAccessTier” 。
在“数据”菜单上,选择“显示数据源” 。
“数据源”窗口随即打开。
在“数据源”窗口,选择“添加新数据源”以启动“数据源配置”向导。
在“选择数据源类型”页上,选择“数据库”,然后选择“下一步”

在“选择数据连接”页面上,执行以下操作之一:
如果下拉列表中包含到 Northwind 示例数据库的数据连接,请选择该连接。
-或-
选择“新建连接”以打开“添加连接”对话框 。
如果数据库需要密码,请选择该选项以包括敏感数据,然后选择“下一步”。
注意如果选择了本地数据库文件(而不是连接至 SQL Server),系统可能会询问你是否将该文件添加到项目中。 选择“是”将该数据库文件添加到项目中。
在“将连接字符串保存到应用程序配置文件中”页上,选择“下一步” 。
在 “选择数据库对象” 页面上展开 “表” 节点。
选择“Customers”和“Orders”表的复选框,然后选择“完成”

将 NorthwindDataSet 添加到 DataAccessTier 项目后即会显示在“数据源”窗口内。
将 TableAdapter 与数据集分离创建数据集后,接着是要将生成的数据集类与 TableAdapter 分离。 通过将“数据集项目”属性设置为要用于存储分离出的数据集类的项目的名称,可以达到此目的。将 TableAdapter 与数据集分离在“解决方案资源管理器”中双击“NorthwindDataSet.xsd”,以在“数据集设计器”中打开该数据集。
选择设计器上的空白区域。
在“属性”窗口中查找“数据集项目”节点。
在“数据集项目”列表中,选择“DataEntityTier” 。
在“生成”菜单上,选择“生成解决方案” 。
将数据集和 TableAdapter 分离到两个类库项目中。 最初包含整个数据集的项目 (DataAccessTier) 现在只包含 TableAdapter。 “DataSet Project”属性中指定的项目 (DataEntityTier) 则包含类型化数据集:NorthwindDataSet.Dataset.Designer.vb(或 NorthwindDataSet.Dataset.Designer.cs) 。
注意分离数据集与 TableAdapter(通过设置“数据集项目”属性)时,将不会自动移动项目中现有的数据集分部类。 你必须手动将它们移到数据集项目中。创建新的服务应用程序本演练演示如何使用 WCF 服务访问数据访问层,因此让我们创建一个新的 WCF 服务应用程序。创建新的 WCF 服务应用程序右键单击“解决方案资源管理器”中的解决方案,然后选择“添加”>“新建项目”。
在“新建项目”对话框的左侧窗格中,选择“WCF” 。 在中间窗格中,选择“WCF 服务库”。
将该项目命名为“DataService”,然后选择“确定” 。
DataService 项目即被创建并添加到 NTierWalkthrough 解决方案中。
在数据访问层中创建用于返回客户和订单数据的方法数据服务需要调用数据访问层中的两个方法:GetCustomers 和 GetOrders。 这些方法返回 Northwind Customers 和 Orders 表。 在 DataAccessTier 项目中创建 GetCustomers 和 GetOrders 方法。在数据访问层中创建返回 Customers 表的方法在“解决方案资源管理器”中,双击“NorthwindDataset.xsd”以打开数据集 。
右键单击“CustomersTableAdapter”,然后单击“添加查询” 。
在“选择命令类型”页面上,保留“使用 SQL 语句”的默认值,然后单击“下一步”。
在“选择查询类型”页面上,保留“选择返回行”的默认值,然后单击“下一步”。
在“指定 SQL SELECT 语句”页面上,保留默认查询,然后单击“下一步”。
在“选择要生成的方法”页面上,为“返回 DataTable”部分的“方法名称”键入“GetCustomers”。
单击“完成”

在数据访问层中创建返回 Orders 表的方法右键单击“OrdersTableAdapter”,然后单击“添加查询”。
在“选择命令类型”页面上,保留“使用 SQL 语句”的默认值,然后单击“下一步”。
在“选择查询类型”页面上,保留“选择返回行”的默认值,然后单击“下一步”。
在“指定 SQL SELECT 语句”页面上,保留默认查询,然后单击“下一步”。
在“选择要生成的方法”页面上,为“返回 DataTable”部分的“方法名称”键入“GetOrders”。
单击“完成”

在“生成”菜单中,单击“生成解决方案”。
向数据服务添加对数据实体和数据访问层的引用由于数据服务需要数据集和 TableAdapter 中的信息,因此需要添加对“DataEntityTier”和“DataAccessTier”项目的引用 。添加对数据服务的引用在“解决方案资源管理器”中右键单击 DataService,然后单击“添加引用”。
在“添加引用”对话框中,单击“项目”选项卡。
选择“DataAccessTier”和“DataEntityTier”项目。
单击 “确定” 。
向服务中添加函数以调用数据访问层中的 GetCustomers 和 GetOrders 方法现在数据访问层包含返回数据的方法,接下来要在数据服务中创建调用这些方法的方法。注意对于 C# 项目,必须添加对 System.Data.DataSetExtensions 程序集的引用,才能编译下面的代码。在数据服务中创建 GetCustomers 和 GetOrders 函数在“DataService”项目中,双击“IService1.vb”或“IService1.cs”。
在“在此处添加服务操作”注释的下方添加以下代码:
C#
VB
[OperationContract]
DataEntityTier.NorthwindDataSet.CustomersDataTable GetCustomers();
[OperationContract]
DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders();
注意本教程的代码提供 C# 和 Visual Basic 版本。 若要将此页面上的代码语言在 C# 和 Visual Basic 之间切换,请使用页面顶部右侧的代码语言切换器。
在 DataService 项目中,双击“Service1.vb”(或“Service1.cs”) 。
将以下代码添加到“Service1”类中:
C#
VB
public DataEntityTier.NorthwindDataSet.CustomersDataTable GetCustomers()
{
DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter
CustomersTableAdapter1
= new DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter();
return CustomersTableAdapter1.GetCustomers();
}
public DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders()
{
DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter
OrdersTableAdapter1
= new DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter();
return OrdersTableAdapter1.GetOrders();
}
在 “生成” 菜单上,单击 “生成解决方案” 。
创建表示层以显示数据服务中的数据现在,解决方案中的数据服务已具有调入数据访问层的方法,接下来要创建另一个项目,以调入数据服务并将数据显示给用户。 对于本演练,创建一个 Windows 窗体应用程序;它将充当 N 层应用程序的表示层。创建表示层项目右键单击“解决方案资源管理器”中的解决方案,然后选择“添加”>“新建项目”。
在“新建项目”对话框的左侧窗格中,选择“Windows 桌面” 。 在中间窗格,选择“Windows 窗体应用”。
将该项目命名为“PresentationTier”,然后单击“确定”。
PresentationTier 项目即被创建并添加到 NTierWalkthrough 解决方案中。
将 PresentationTier 项目设置为启动项目我们将 PresentationTier 项目设置为解决方案的启动项目,因为它是用于显示数据和进行数据交互的实际客户端应用程序。将新的表示层项目设置为启动项目在“解决方案资源管理器”中,右键单击“PresentationTier”,然后单击“设为启动项目”。
添加对表示层的引用客户端应用程序 PresentationTier 需要具有对数据服务的服务引用,才能访问服务中的方法。 另外,WCF 服务又需要具有对数据集的引用,才能启用类型共享。 而只有通过数据服务启用类型共享,表示层才能使用添加到数据集分部类中的代码。 由于数据表的行和列更改事件中通常添加有类似于验证代码的代码,因此可能需要从客户端访问此代码。添加定义表示层的引用在“解决方案资源管理器”中,右键单击“PresentationTier”,然后选择“添加引用”

在“添加引用”对话框中,选择“项目”选项卡 。
选择“DataEntityTier”,然后选择“确定” 。
添加对表示层的服务引用在“解决方案资源管理器”中,右键单击“PresentationTier”,然后选择“添加服务引用”

在“添加服务引用”对话框中,选择“发现” 。
选择“Service1”,然后选择“确定” 。
注意如果当前计算机上存在多项服务,请选择你在本演练的前面部分中创建的服务(即包含 GetCustomers 和 GetOrders 方法的服务)。
将 DataGridView 添加到窗体,以显示数据服务返回的数据在添加对数据服务的服务引用后,将自动使用该服务返回的数据填充“数据源”窗口。将两个数据绑定 DataGridView 添加到窗体中在“解决方案资源管理器”中,选择“PresentationTier”项目。
在“数据源”窗口中,展开“NorthwindDataSet”,然后查找“Customers”节点。
将“Customers”节点拖到 Form1 上。
在“数据源”窗口中,展开“Customers”节点,然后查找相关的“Orders”节点(“Orders”节点嵌套在“Customers”节点中)。
将相关的“Orders”节点拖到 Form1 上。
通过双击窗体的空白区域,创建一个 Form1_Load 事件处理程序。
将以下代码添加到 Form1_Load 事件处理程序中。
C#
VB
ServiceReference1.Service1Client DataSvc =
new ServiceReference1.Service1Client();
northwindDataSet.Customers.Merge(DataSvc.GetCustomers());
northwindDataSet.Orders.Merge(DataSvc.GetOrders());
增加服务所允许的最大消息大小maxReceivedMessageSize 的默认值不足以容纳从 Customers 和 Orders 表中检索到的数据。 在下面的步骤中,会将该值增加到 6553600。 可以更改客户端上的值,这会自动更新服务引用。增加 maxReceivedMessageSize 值在“解决方案资源管理器”的“PresentationTier”项目中,双击“app.config”文件。
查找“maxReceivedMessageSize”属性,然后将该值更改为 6553600。 如果未看到 basicHttpBinding 条目,请添加一个,如以下示例所示:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding maxBufferSize="6553600" maxReceivedMessageSize="6553600" />
</basicHttpBinding>
</bindings>
</system.serviceModel>
测试应用程序按 F5 运行应用程序。 应用程序会从数据服务中检索 Customers 和 Orders 表的数据,并将检索到的数据显示在窗体上。后续步骤根据应用程序的需求,在基于 Windows 的应用程序中保存相关数据后,可能还要执行一些步骤。 例如,你可以对此应用程序进行以下增强:另请参阅在 N 层应用程序中使用数据集
分层更新
在 Visual Studio 中访问数据

我要回帖

更多关于 数据库update和alter之间的区别 的文章

 

随机推荐