当前位置: 首页 > news >正文

佛山 网站阿里云主机价格

佛山 网站,阿里云主机价格,东莞最新招聘信息直招,哪家网站推广好简介 正如在 数据插入、更新和删除概述 中讨论的那样#xff0c;GridView 控件提供内置的更新和删除功能#xff0c;而DetailsView 和 FormView 控件则包含对插入、编辑和删除功能的支持。这些数据修改功能无需编写任何代码#xff0c;可直接嵌入数据源控件。 数据插入、更新…简介 正如在 数据插入、更新和删除概述 中讨论的那样GridView 控件提供内置的更新和删除功能而DetailsView 和 FormView 控件则包含对插入、编辑和删除功能的支持。这些数据修改功能无需编写任何代码可直接嵌入数据源控件。 数据插入、更新和删除概述 中探讨了如何使用 ObjectDataSource 通过 GridView 、DetailsView 和 FormView 控件完成插入、更新和删除功能。或者可使用SqlDataSource 代替 ObjectDataSource 。 回想一下要使 ObjectDataSource 支持插入、更新和删除功能我们需要指定完成插入、更新和删除操作调用的目标层方法。使用SqlDataSource 我们需要提供要执行的 INSERT 、UPDATE 、 和DELETE SQL 语句或存储过程。正如我们将在本教程中所看到的这些语句可手动创建也可以由 SqlDataSource 的 Configure Data Source 向导自动生成。 注意由于我们已经讨论了 GridView 、DetailsView 和 FormView 控件的插入、编辑和删除功能本教程将更多的关注配置 SqlDataSource 控件来支持这些操作。如果您需要温习在GridView 、DetailsView 和 FormView 内的这些功能请返回编辑、插入和删除数据教程首先从 数据插入、更新和删除概述 开始。 步骤1 指定 INSERT 、UPDATE 和 DELETE 语句 正如我们在前面两个教程中所看到的要想从SqlDataSource 控件检索数据我们需要设置两个属性 ConnectionString 用于指定向哪个数据库发送查询。SelectCommand 用于指定返回结果需要执行的 ad-hoc SQL 语句或者存储过程名称。对于带参数的SelectCommand 值来说参数值可通过SqlDataSource 的 SelectParameters 集合指定可包含固定赋值、公用参数源值查询字符串字段、会话变量、Web 控件值等或者通过编码分配。调用 SqlDataSource 控件的 Select() 方法时既可以通过编码调用也可以从 Web 数据控件自动调用将建立连接到数据库的连接将参数值分配给查询并且将命令转到数据库。根据控件的DataSourceMode 属性值结果随后可能作为 DataSet 返回也可能作为 DataReader 返回。 SqlDataSource 控件不仅可以选择数据还可以采用完全相同的方式通过支持INSERT 、UPDATE 和 DELETE SQL 语句用于插入、更新和删除数据。只需分配要执行的INSERT 、UPDATE 和 DELETE SQL 语句的 InsertCommand 、 UpdateCommand 和DeleteCommand 属性。如果语句带有参数它们中大大多数均带有参数请将它们包含到 InsertParameters 、UpdateParameters 和 DeleteParameters 集合中。 一旦指定了InsertCommand 、UpdateCommand 或DeleteCommand 值相应的 Web 数据 控件的智能标记中的 “Enable Inserting” 、“Enable Editing” 或者 “Enable Deleting” 将变为可用选项。为了说明这一点我们需要从 Querying.aspx 页面中举一个在 使用 SqlDataSource 控件查询数据 教程中创建的例子并将其扩充为包含删除能力。 首先从SqlDataSource 文件夹中打开 InsertUpdateDelete.aspx 页面和Querying.aspx 页面。在 Querying.aspx 页面的设计器上从 第一个示例中选择 SqlDataSource 和 GridViewProductsDataSource 和 GridView1 控件。选择两个控件之后转到 Edit 菜单并选择 Copy 或者按下 CtrlC 。接下来转到InsertUpdateDelete.aspx 页面上的设计器并粘贴到控件中。在将两个控件移动到InsertUpdateDelete.aspx 之后请在浏览器中测试页面。将在 Products 数据库表中看到所有记录的 ProductID 、 ProductName 和 UnitPrice 值。 图1 按 ProductID 的顺序列出所有产品 添加 SqlDataSource 的DeleteCommand 和DeleteParameters 属性 此时我们已经获得了从Products表返回所有记录的SqlDataSource 以及显示此数据的 GridView 。我们的目标是将此示例扩展为用户可以通过 GridView 删除产品。要完成此目标我们需要指定SqlDataSource 控件的 DeleteCommand 和DeleteParameters 属性值然后将GridView 配置为支持删除。 DeleteCommand 和 DeleteParameters 属性可通过多种方式指定 通过声明式语法指定从设计器中的 Properties 窗口指定从Configure Data Source 向导的“Specify a custom SQL statement or stored procedure 屏幕指定从Configure Data Source 向导的“Specify columns from a table of view” 屏幕中的Advanced 按钮来指定实际上它将自动生成DeleteCommand 和 DeleteParameters 属性中使用的 DELETE SQL 语句和参数集下面我们将探讨如何在步骤2 中自动创建 DELETE 语句。现在尽管 Configure Data Source 向导或者声明式语法选项均可工作但我们将在设计器中使用 Properties 窗口。 在InsertUpdateDelete.aspx 页面中的设计器中单击 ProductsDataSource SqlDataSource 随后屏幕上将显示 Properties 窗口从 View 菜单选择Properties 窗口或者单击F4 。选择 DeleteQuery 属性屏幕上将显示省略号。 图2 从 Properties 窗口选择 DeleteQuery 属性 注意SqlDataSource 没有 DeleteQuery 属性。并且DeleteQuery 是 DeleteCommand 和 DeleteParameters 属性的组合仅在使用 设计器 查看窗口Properties 窗口时才被列出。如果您的 Source 视图中查看 Properties 窗口您会看到 DeleteCommand 属性。 DeleteQuery 属性中单击省略号屏幕将显示Command and Parameter Editor 对话框见图 3。在此对话框中您可以指定DELETE SQL 语句和参数。在DELETE 命令文本框中输入下列查询既可以手动输入也可以使用Query Builder 输入如果您愿意的话。 DELETE FROM Products WHERE ProductID ProductID 接下来单击 Refresh Parameters 按钮向下面的参数列表中添加 ProductID 参数。 图3 从 Properties 窗口选择 DeleteQuery 属性 请不要为此参数赋值保留其参数源为 “None” 。一旦我们给 GridView 提供了删除支持GridView 将自动支持此参数值单击 Delete 按钮的行将使用其 DataKeys 集合的值。 注意DELETE 查询中使用的参数名称必须与 GridView 、DetailsView 或者FormView 中的 DataKeyNames 值的名称一致。也就是说DELETE 语句中的参数是特意命名为 ProductID 而不是 ID因为 Products 表中关键字列名称所以GridView 中的 DataKeyNames 值为 ProductID 。 如果参数名称和 DataKeyNames 值不匹配GridView 将无法从 DataKeys 连接自动分配参数值。 在 Command and Parameter Editor 对话框中输入删除相关的信息之后单击OK 转到Source 视图查看结果的声明标记 asp:SqlDataSource IDProductsDataSource runatserver     ConnectionString%$ ConnectionStrings:NORTHWNDConnectionString %     SelectCommand         SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]     DeleteCommandDELETE FROM Products WHERE ProductID  ProductID     DeleteParameters         asp:Parameter NameProductID /     /DeleteParameters /asp:SqlDataSource 请注意添加DeleteCommand 属性、DeleteParameters 部分和名为productID 的参数对象。 配置 GridView 启用删除 添加DeleteCommand 属性之后GridView 的智能标记将包含 “Enable Deleting” 选项。继续执行并选中此复选框。正如在插入、更新和删除概述 中讨论的一样这将使GridView 添加一个CommandField 其 ShowDeleteButton 属性被设置为 True 。如图 4 所示当页面通过浏览器访问时页面上将包含一个 Delete 按钮。可以通过删除某些产品来测试此页面。 图4 每个GridView 行均包含一个Delete 按钮 单击Delete 按钮时出现回传GridView 为每个单击 Delete 按钮行的 ProductID 参数赋值为 DataKeys 集的值并调用 SqlDataSource 的 Delete() 方法。然后SqlDataSource 控件将连接到数据库并执行DELETE 语句。这样GridView 将重新绑定到 SqlDataSource 恢复并显示当前产品这些产品现在不再包含刚刚删除的记录。 注意由于 GridView 使用其 DataKeys 集合为SqlDataSource 参数赋值因此 GridView 的 DataKeyNames 属性可设置为组成主键的列并且 SqlDataSource 的 SelectCommand 返回这些列就变得至关重要。此外SqlDataSource 的 DeleteCommand 中的参数名设置为 ProductID 也十分重要。如果未设置 DataKeyNames 属性或者参数未命名为 ProductsID 单击 Delete 按钮将导致回传但实际上不会删除任何记录。 图5 以图形方式说明了此过程。有关在 Web 数据控件中与插入、更新和删除相关的事件链的更详细讨论请参照 探讨与插入、更新、删除相关的事件 教程。 图5 在 GridView 中单击 Delete 按钮将调用 SqlDataSource 的 Delete() 方法 步骤2 自动生成 INSERT 、UPDATE 和 DELETE 语句 正如步骤1 中所讨论的INSERT 、UPDATE 和 DELETE SQL 语句可通过Properties 窗口或者控件的声明式语法指定。但是此方法要求我们手动编写 SQL 语句这些语句可能十分单调并且容易产生错误。幸运的是 Configure Data Source 向导提供了一个选项 使用 “ Specify columns from a table of view” 屏幕时可自动生成 INSERT 、UPDATE 和 DELETE 语句。 下面我们探讨一下这个自动生成选项。在InsertUpdateDelete.aspx 中向 设计器 添加一个 DetailsView 并将其 ID 属性设置为 ManageProducts 。接下来从 DetailsView 的智能标记中选择创建新数据源并创建一个名为 ManageProductsDataSource 的 SqlDataSource 。 图6 创建一个名为 ManageProductsDataSource 的新 SqlDataSource 从Configure Data Source 向导选择使用NORTHWINDConnectionString 连接字符串单击 Next 。从 “Configure the Select Statement” 屏幕保留 “Specify columns from a table or view” 单选按钮选中不变并从下拉列表选择 Products 表。从复选框列表选择 ProductID 、 ProductName 、 UnitPrice 和 Discontinued 列。 图7 使用 Products 表返回 ProductID 、ProductName 、UnitPrice 和 Discontinued 列 要根据所选的表和列自动生成 INSERT 、UPDATE 和 DELETE 语句单击Advanced 按钮选中 “Generate INSERT, UPDATE, and DELETE statements” 复选框。 图8 选中 “Generate INSERT, UPDATE, and DELETE statements” 复选框 只有在所选的表有主键并且主键列包含在返回列的列表中时“Generate INSERT, UPDATE, and DELETE statements” 复选框才可被选中。在选中 “ Generate INSERT, UPDATE, and DELETE statements” 复选框的情况下“ Use optimistic concurrency” 复选框将作为结果产生的 UPDATE 和 DELETE 语句中增加 WHERE 子句提供开放式并发控件。现在不选中此复选框我们将在下一篇教程中探讨使用 SqlDataSource 控件完成开放式并发。 在选中“Generate INSERT, UPDATE, and DELETE statements” 复选框之后单击OK 返回 “Configure Select Statement” 屏幕然后单击 Next 最后单击 Finish 完成 Configure Data Source 向导。完成向导后Visual Studio 将为 ProductID 、ProductName 和 UnitPrice 向 DetailsView 添加BoundFields 还将为 Discontinued 列添加CheckBoxField 。为了使正在访问此页面的用户能够查看产品请从DetailsView 的智能标记选择 “Enable Paging” 选项。同时清除DetailsView 的 Width 和 Height 属性。 请注意智能标记还提供了 “Enable Inserting” 、“Enable Editing” 和 “Enable Deleting” 选项。这是由于 SqlDataSource 控件包含其 InsertCommand 、UpdateCommand 和 DeleteCommand 值如下列声明式语法所示 asp:DetailsView IDManageProducts runatserver AllowPagingTrue     AutoGenerateRowsFalse DataKeyNamesProductID     DataSourceIDManageProductsDataSource EnableViewStateFalse     Fields         asp:BoundField DataFieldProductID HeaderTextProductID             InsertVisibleFalse ReadOnlyTrue SortExpressionProductID /         asp:BoundField DataFieldProductName HeaderTextProductName             SortExpressionProductName /         asp:BoundField DataFieldUnitPrice HeaderTextUnitPrice             SortExpressionUnitPrice /         asp:CheckBoxField DataFieldDiscontinued HeaderTextDiscontinued             SortExpressionDiscontinued /     /Fields /asp:DetailsView  asp:SqlDataSource IDManageProductsDataSource runatserver     ConnectionString%$ ConnectionStrings:NORTHWNDConnectionString %     DeleteCommand         DELETE FROM [Products] WHERE [ProductID]  ProductID     InsertCommand         INSERT INTO [Products] ([ProductName], [UnitPrice], [Discontinued])          VALUES (ProductName, UnitPrice, Discontinued)     SelectCommand         SELECT [ProductID], [ProductName], [UnitPrice], [Discontinued]          FROM [Products]     UpdateCommand         UPDATE [Products] SET [ProductName]  ProductName,          [UnitPrice]  UnitPrice, [Discontinued]  Discontinued          WHERE [ProductID]  ProductID     DeleteParameters         asp:Parameter NameProductID TypeInt32 /     /DeleteParameters     UpdateParameters         asp:Parameter NameProductName TypeString /         asp:Parameter NameUnitPrice TypeDecimal /         asp:Parameter NameDiscontinued TypeBoolean /         asp:Parameter NameProductID TypeInt32 /     /UpdateParameters     InsertParameters         asp:Parameter NameProductName TypeString /         asp:Parameter NameUnitPrice TypeDecimal /         asp:Parameter NameDiscontinued TypeBoolean /     /InsertParameters /asp:SqlDataSource 请注意SqlDataSource 控件如何自动设置其InsertCommand 、UpdateCommand 和  DeleteCommand 属性值。InsertCommand 和 UpdateCommand 属性中引用的列是由SELECT 语句中的列决定的。也就是说InsertCommand 和UpdateCommand 只含有那些SelectCommand 中指定的列并不是每个Products 列均在InsertCommand 和UpdateCommand 中由于它是 编辑时无法更改它的值插入时自动分配将忽略较小的 ProductID 。此外对于InsertCommand、UpdateCommand 和DeleteCommand 属性中的每个参数来说InsertParameters 、UpdateParameters 和 DeleteParameters 集合中有相应的参数。 要启用DetailsView 的数据修改功能请在其智能标记中选中 “Enable Inserting” 、“ Enable Editing” 和 “Enable Deleting” 选项。这将添加一个 CommandField 其ShowInsertButton 、ShowEditButton 和ShowDeleteButton 属性均被设置为 True 。 在浏览器中访问页面请注意DetailsView 中包含的 Edit 、Delete 和 New 按钮。单击 Edit 按钮DetailsView 将切换到编辑模式该模式将所有ReadOnly 属性被设置为False默认值的 BoundField 显示为一个文本框而 CheckBoxField 则显示为复选框。 图9 DetailsView 的默认编辑界面 与此类似您可以删除当前选择的产品或者向系统添加一个新产品。由于 InsertCommand 语句处理 ProductName 、UnitPrice 和 Discontinued 列其它列在插入时要么由数据库分配 NULL 值要么分配它们的默认值。就像 ObjectDataSource 一样如果 InsertCommand 丢失了任何不允许使用NULL 值或者没有默认值的数据库列表行尝试执行 INSERT 语句时将出现一个 SQL 错误。 注意DetailsView 的插入和编辑界面缺少某种定制或验证。要添加validation 控件或定制界面您需要将BoundFields 转换为TemplateFields 。更多信息 请参阅 为编辑与插入界面添加验证控件和 自定义数据修改界面教程。 此外请记住对于更新和删除来说DetailsView 使用当前产品的 DataKey 值此值仅在 DataKeyNames 已经配置完毕的情况下呈现。如果编辑和删除看上去似乎没有效果请确定是否设置了DataKeyName 属性。 自动生成 SQL 语句的限制 由于“Generate INSERT, UPDATE, and DELETE statements” 仅在从表中选择列时可用对于更复杂的查询来说您必须像步骤1 一样编写您自己的INSERT 、UPDATE 和 DELETE 语句。通常情况下为了实现显示的目的SQL SELECT 语句使用 JOIN 从一个或者更多个查找表中取回数据例如在显示产品信息时取回 Categories 表的 CategoryName 字段。同时我们可能想让用户可以编辑、更新或插入数据到“核心”表此时是 Products 表。 由于INSERT 、UPDATE 和 DELETE 语句可手动输入请考虑下列节省时间的技巧。首先安装SqlDataSource 保证它可以从 Products 表撤回数据。请使用 Configure Data Source 向导的 “ Specify columns from a table or view” 屏幕保证可以自动生成 INSERT 、UPDATE 和 DELETE 语句然后在完成向导之后从Properties 窗口选择配置SelectQuery 或者返回 Configure Data Source 向导但是使用“Specify a custom SQL statement or stored procedure” 选项。最后更新 SELECT 语句使之包含 JOIN 语法。此技术可以自动生成 SQL 语句可提供更容易定制的 SELECT 语句从而节省时间。 自动生成INSERT 、UPDATE 和 DELETE 语句的另外一个限制是 INSERT 和 UPDATE 语句中的列是根据 SELECT 语句返回的列确定的。我们可能需要更新或者插入更多或者更少的字段。例如来自步骤2 的例子中我们可能将 UnitPrice BoundField 设置为只读。在这种情况下它不应该在UpdateCommand 中出现。或者我们可能希望设置 GridView 中不出现的表字段。例如添加新记录时我们可能希望将 QuantityPerUnit 设置为“TODO” 。 如果需要这样的定制您需要手动完成要么通过Properties 窗口、向导中的 “Specify a custom SQL statement or stored procedure” 选项完成要么通过声明式语法完成。 注意在 Web 数据控件中添加不含有相应字段的参数时请记住这些参数值在某些方面需要分配值。分配的值可以为InsertCommand 或 UpdateCommand 中的直接赋值可从某些预定义源获得查询字符串 、会话变量、页面上的 Web  控件等或者可通过编码赋值正如我们在前面的教程中看到的一样。 小结 为了使Web 数据控件能够使用它们内置的插入、编辑和删除功能它们绑定的数据源控件必须提供这样的功能。对SqlDataSource 来说这意味着INSERT 、UPDATE 和 DELETE SQL 语句必须分配给 InsertCommand 、UpdateCommand 和 DeleteCommand 属性。这些属性及其相应的参数集可以手动添加或者通过Configure Data Source 向导自动生成。在本教程中我们对上述两种方法均进行了讨论。 在 实现开放式并发 教程中我们探讨了通过 ObjectDataSource 使用开放式并发。SqlDataSource 控件也可提供开放式并发支持。如步骤2 所述自动生成 INSERT 、UPDATE 和 DELETE 语句时向导将提供 “ Use optimistic concurrency” 选项。正如下一篇教程中我们将看到的通过 SqlDataSource 使用开放式并发在 UPDATE 和 DELETE 语句中将修改 WHERE 子句保证页面上次显示数据之后其它列的值均未发生变化。 快乐编程转载于:https://www.cnblogs.com/uddgm/articles/5451539.html
http://www.pierceye.com/news/657889/

相关文章:

  • 做网站套餐wordpress 显示excel
  • 免费网站搭建临西做网站报价
  • 网站搭建详细步骤app应用网站html5模板下载
  • 苏州网站制作工作室宜宾网站开发公司
  • 哪些网站使用vue做的自己做服务器和网站
  • 怎样查看网站备案号自己录入数据做问卷的网站
  • 怎么提高网站的百度收录网页设计师考试报名
  • 北京网站建设公司联系方式常德网站建设专业品牌
  • 福州网站设计哪家做的好男科医院网站开发策划
  • 网站建设公司swot分析室内设计者联盟官网
  • 深圳手机商城网站设计游戏网站seo怎么做
  • 网站上传 文件夹结构国内响应式网站
  • 做logo图标的网站自助建站系统网站建设开发
  • 韩国站群服务器网络推广公司网站
  • 网站公司设计公司设计上海展会2021门票
  • 做微网站的公司哪家好刷百度关键词排名优化
  • php网站建设一流程胶南网站建设多少钱
  • 网站开发证书网站推广应该怎么做?
  • 网站规划与网页设计案例网站建设php招聘
  • 网站内容页优化阿里巴巴做网站么
  • 网站百度收录秒收方法网页制作员厂家
  • 免费做网站怎么做网站619去加网 wordpress
  • 网站建设基本资料信息流优化师是干什么的
  • 网站开发项目经理招聘高级网站设计效果图
  • 上海建网站社交型网站开发
  • 西安建网站做自动化设备哪个网站
  • 深圳优化网站关键词wordpress如何拖移小工具
  • 优秀网站设计欣赏国内网站后期
  • 计算机应用技术php网站开发php网站进后台
  • asp网站安全小x导航正品