当我尝试在数据源中选中复选框以检查乐观并发时,我将无法再编辑数据。 我收到一条错误消息:

“没有为一个或多个必需参数提供值。”

我不确定如何为我的sqldatasource1绕过此操作。 另外,当我尝试插入新记录时,我没有添加客户ID的字段吗? 下面是我的代码。 对不起,这仍然是新事物。

<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="CustomerMaintenanc.aspx.vb" Inherits="CustomerMaintenanc" %>


<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table border="0" cellpadding="0" cellspacing="0"><tr><td>
    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
        AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" 
        DataKeyNames="CustomerID" DataSourceID="SqlDataSource2" ForeColor="#333333" 
        GridLines="None">
        <RowStyle BackColor="#EFF3FB" />
        <Columns>
            <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
            <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
            <asp:BoundField DataField="State" HeaderText="State" SortExpression="State" />
            <asp:CommandField ButtonType="Button" ShowSelectButton="True" />
        </Columns>
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <EditRowStyle BackColor="#2461BF" />
        <AlternatingRowStyle BackColor="White" />
    </asp:GridView></td><td valign=top align=right>
    <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" 
            AutoGenerateRows="False" DataKeyNames="CustomerID" 
            DataSourceID="SqlDataSource1">
        <Fields>
            <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" 
                InsertVisible="False" ReadOnly="True" SortExpression="CustomerID" />
            <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
            <asp:BoundField DataField="Address" HeaderText="Address" 
                SortExpression="Address" />
            <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
            <asp:BoundField DataField="State" HeaderText="State" SortExpression="State" />
            <asp:BoundField DataField="ZipCode" HeaderText="ZipCode" 
                SortExpression="ZipCode" />
            <asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" />
            <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
            <asp:CommandField ButtonType="Button" ShowDeleteButton="True" 
                ShowEditButton="True" ShowInsertButton="True" />
        </Fields>
    </asp:DetailsView>
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
            ConnectionString="<%$ ConnectionStrings:TechSupportConnectionString %>" 
            ProviderName="<%$ ConnectionStrings:TechSupportConnectionString.ProviderName %>" 
            SelectCommand="SELECT [CustomerID], [Name], [City], [State] FROM [Customers] ORDER BY [Name]">
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:TechSupportConnectionString %>" 
            DeleteCommand="DELETE FROM [Customers] WHERE [CustomerID] = ? AND [Name] = ? AND [Address] = ? AND [City] = ? AND [State] = ? AND [ZipCode] = ? AND (([Phone] = ?) OR ([Phone] IS NULL AND ? IS NULL)) AND (([Email] = ?) OR ([Email] IS NULL AND ? IS NULL))" 
            InsertCommand="INSERT INTO [Customers] ([CustomerID], [Name], [Address], [City], [State], [ZipCode], [Phone], [Email]) VALUES (?, ?, ?, ?, ?, ?, ?, ?)" 
            ProviderName="<%$ ConnectionStrings:TechSupportConnectionString.ProviderName %>" 
            SelectCommand="SELECT * FROM [Customers] WHERE ([CustomerID] = ?)" 

            UpdateCommand="UPDATE [Customers] SET [Name] = ?, [Address] = ?, [City] = ?, [State] = ?, [ZipCode] = ?, [Phone] = ?, [Email] = ? WHERE [CustomerID] = ? AND [Name] = ? AND [Address] = ? AND [City] = ? AND [State] = ? AND [ZipCode] = ? AND (([Phone] = ?) OR ([Phone] IS NULL AND ? IS NULL)) AND (([Email] = ?) OR ([Email] IS NULL AND ? IS NULL))" 
            ConflictDetection="CompareAllValues" 
            OldValuesParameterFormatString="original_{0}">
            <SelectParameters>
                <asp:ControlParameter ControlID="GridView1" Name="CustomerID" 
                    PropertyName="SelectedValue" Type="Int32" />
            </SelectParameters>
            <DeleteParameters>
                <asp:Parameter Name="original_CustomerID" Type="Int32" />
                <asp:Parameter Name="original_Name" Type="String" />
                <asp:Parameter Name="original_Address" Type="String" />
                <asp:Parameter Name="original_City" Type="String" />
                <asp:Parameter Name="original_State" Type="String" />
                <asp:Parameter Name="original_ZipCode" Type="String" />
                <asp:Parameter Name="original_Phone" Type="String" />
                <asp:Parameter Name="original_Email" Type="String" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="Name" Type="String" />
                <asp:Parameter Name="Address" Type="String" />
                <asp:Parameter Name="City" Type="String" />
                <asp:Parameter Name="State" Type="String" />
                <asp:Parameter Name="ZipCode" Type="String" />
                <asp:Parameter Name="Phone" Type="String" />
                <asp:Parameter Name="Email" Type="String" />
                <asp:Parameter Name="original_CustomerID" Type="Int32" />
                <asp:Parameter Name="original_Name" Type="String" />
                <asp:Parameter Name="original_Address" Type="String" />
                <asp:Parameter Name="original_City" Type="String" />
                <asp:Parameter Name="original_State" Type="String" />
                <asp:Parameter Name="original_ZipCode" Type="String" />
                <asp:Parameter Name="original_Phone" Type="String" />
                <asp:Parameter Name="original_Email" Type="String" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="CustomerID" Type="Int32" />
                <asp:Parameter Name="Name" Type="String" />
                <asp:Parameter Name="Address" Type="String" />
                <asp:Parameter Name="City" Type="String" />
                <asp:Parameter Name="State" Type="String" />
                <asp:Parameter Name="ZipCode" Type="String" />
                <asp:Parameter Name="Phone" Type="String" />
                <asp:Parameter Name="Email" Type="String" />
            </InsertParameters>
        </asp:SqlDataSource>
    </td></tr></table>
    </asp:Content>

  ask by allencoded translate from so

本文未有回复,本站智能推荐:

1回复

在asp.net中使用时间戳和类型化数据集进行乐观并发

我正在使用c#和asp.net为我的网站创建一个论坛系统,对于数据访问,我使用的是类型化数据集,对于UI,我正在使用mvp模式。 在我的数据库中,我有存储过程,我已添加到我的数据集中。 问题是数据集不允许我选择“使用乐观并发”复选框,所以我必须自己实现乐观并发。 我已经为我的表添加了一个时
1回复

如何避免EF中新添加记录的乐观并发错误

我在MVC 5项目中使用Entity Framework 6,在Experiment和FileAttachment之间存在实体关系(一个Experiment可以提供多个FileAttachment)。 在“编辑实验”记录期间,我加载了一个包含两个实体的ViewModel并在编辑模式下列出了该实
3回复

使用SqlDataSource删除空字典错误 - ASP.net ListView

我正在尝试使用乐观并发创建一个简单的ListView。 它使用VS自动生成的Delete,Insert,Update语句(除了1更改插入:参见代码)。 插入和编辑工作正常并提交到数据库。 尝试删除时,我收到此错误: 您已指定delete命令比较SqlDataSource'MySour
3回复

在Entity Framework中删除对象时的并发性

我正在使用实体框架开发一个Web应用程序。 我加载一个对象列表并将其绑定到转发器以显示所有项目的摘要。 用户可以单击转发器中的每个项目的编辑图标或删除图标。 例: 第1项| 编辑| 删除 第2项| 编辑| 删除 ... 使用rowversion列进行并发
1回复

Devexpress ASPXGridView和EntityFramework 4.3.1的并发异常

我的问题 我有一个用于测试并发性的简单WebForms项目。 我在用: 现在,我在并发检查方面遇到了问题。 即使我是唯一编辑数据的用户,如果我使用DevExpress ASPXGridView编辑同一条记录两次,也会出现并发异常! 我得到的异常是:System.D
1回复

乐观并发处理-Asp.Net WebApi Odata V4

这是我的OdataController的Patch方法 我的模型有一个属性: DbUpdateConcurrencyException似乎根本不起作用。 我需要使用Etag实现并发检查机制。 我在这里看到了一些示例。但是他们没有在其中使用Delta方法。 如何使用e
3回复

如何解决C#.NET N层应用程序中的乐观并发更新?

大家好 在c#.net VS 2008中,我正在开发一个N层CRM框架解决方案,完成后我想共享它。 该体系结构基于: 数据访问层,实体框架,业务逻辑层,WCF,最后是表示层(Win窗体)。 在我读过的某处,由于乐观并发更新(具有相同数据的多个客户端事务),导致超过2层的层
1回复

处理乐观并发MVC编辑表

我的下面的编辑表单有问题,它从不捕获DbUpdateConcurrencyException 。 我究竟做错了什么? 类 控制者 我还将RowVersion列的“并发模式”设置为固定 编辑 我还将catch块异常更改为通用异常,现在收到以下错误:
3回复

更新EF 4中的记录时的乐观并发

在VS 2012中调试时收到此异常 具有相同键的对象已存在于ObjectStateManager中。 ObjectStateManager无法使用相同的键跟踪多个对象。 我花了将近一个星期的时间来尝试使用以下模式来解决乐观并发:DbFactory,工作单元,DI,通用存储库
1回复

使用.NET进行MongoDB乐观并发控制

使用.NET MongoDB API(MongoDB.Driver),实现乐观并发控制的推荐方法是什么? 例如,有什么类似于SQL Server的ROWVERSION / TIMESTAMP,例如,每当文档更改时自动更新的属性? 还是有触发机制? 还是其他任何机制?