GridView 更新/删除崩溃

Posted

技术标签:

【中文标题】GridView 更新/删除崩溃【英文标题】:GridView update/delete crashes 【发布时间】:2013-06-17 12:05:17 【问题描述】:

我的表格有一个网格视图。我为我的数据库建立了一个访问数据源。访问数据源已配置,因此 sql 气味为:SELECT * FROM [Users] 在高级设置中,我选中了“生成插入、更新和删除语句”,启用了编辑和删除。我的源代码显示了这一点:

<asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="~/App_Data/RunRunDB.mdb" 
    DeleteCommand="DELETE FROM [Users] WHERE (([username] = ?) OR ([username] IS NULL AND ? IS NULL))" 
    InsertCommand="INSERT INTO [Users] ([Fname], [Lname], [Email], [Bday], [pswrd], [admin], [username]) VALUES (?, ?, ?, ?, ?, ?, ?)" 
    OldValuesParameterFormatString="original_0" 
    SelectCommand="SELECT * FROM [Users]" 

    UpdateCommand="UPDATE [Users] SET [Fname] = ?, [Lname] = ?, [Email] = ?, [Bday] = ?, [pswrd] = ?, [admin] = ? WHERE (([username] = ?) OR ([username] IS NULL AND ? IS NULL))">` 
     <DeleteParameters>
        <asp:Parameter Name="original_username" Type="String" />
    </DeleteParameters>
    <InsertParameters>
        <asp:Parameter Name="Fname" Type="String" />
        <asp:Parameter Name="Lname" Type="String" />
        <asp:Parameter Name="Email" Type="String" />
        <asp:Parameter Name="Bday" Type="DateTime" />
        <asp:Parameter Name="pswrd" Type="String" />
        <asp:Parameter Name="admin" Type="Boolean" />
        <asp:Parameter Name="username" Type="String" />
    </InsertParameters>
    <UpdateParameters>
        <asp:Parameter Name="Fname" Type="String" />
        <asp:Parameter Name="Lname" Type="String" />
        <asp:Parameter Name="Email" Type="String" />
        <asp:Parameter Name="Bday" Type="DateTime" />
        <asp:Parameter Name="pswrd" Type="String" />
        <asp:Parameter Name="admin" Type="Boolean" />
        <asp:Parameter Name="original_username" Type="String" />
    </UpdateParameters>
</asp:AccessDataSource>

每次运行我的网站时,我都会收到一条错误消息:您没有一个或多个必需参数的值。

谢谢..

【问题讨论】:

【参考方案1】:

你的问题在这里:

WHERE (([username] = ?) OR ([username] IS NULL AND ? IS NULL))

命令参数不能用于指定表或列(字段)名称;他们只指定列。您必须调整 UpdateCommandDeleteCommand 字符串以明确指定列名。

【讨论】:

是的!有用!非常感谢你。我不明白为什么视觉工作室会导致崩溃!

以上是关于GridView 更新/删除崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Gridview 中的更新命令停止工作(以前工作和删除,选择工作正常)

ASP.NET GridView代码实现编辑,删除功能

EF 更新未更新 GridView

dev GridControl中的GridView怎么实现批量删除、修改GridView表中的任意数据后保存。求大神解决

asp.net中GridView的删除、编辑,怎么实现

Gridview自动生成的选择、更新、删除按钮那一列怎么设置宽度?