c# - GridView 更新/删除崩溃

标签 c# asp.net ms-access gridview

我有一个表格的 GridView 。我为我的数据库建立了一个 AccessDataSource。 Access 数据源已配置,因此 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>

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

谢谢..

最佳答案

你的问题在这里:

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

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

关于c# - GridView 更新/删除崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17147082/

相关文章:

delphi - 在 Delphi 的 Unicode 版本中 Access 记录的真实缓冲区 - ADO

ms-access - Microsoft Access 是否具有全文搜索功能?

c# - WPF(C#) 如何使用post请求传输文件?

c# - 从中心和半径创建一个 SqlGeography 多边形圆

c# - 当前上下文中不存在名称 "___"

ASP.Net - 如何从常规页面访问母版页对象?

sql-server - 如何获取 Microsoft Access 表单来刷新计算列?

C# 泛型继承数据访问

c# - 野田时间 - 带区域的一天开始/结束

c# - 复选框和页面重新加载