Solved

ERROR: No value given for one or more required parameters

Posted on 2012-03-20
3
396 Views
Last Modified: 2012-03-20
Hi:

We're creating a web application with VS 2010 using Visual Basic.

We'd like to update an record in an access database table using GridView

For some reason, when we run the code, the program crashed with the following error: No value is given for one or more required parameters

We've checked again and again but could not find anything missing: each record in GridView has 3 fields: OrderID (text - primary key), Amount (double), and Tax (double). We wanted to update the field Amount of the 1st record in GridView. When we click "Update", it crashed.

If you've some idea why it crashed, please help.

We added the code below.

Thanks a lot,

Somits

//----------------------------------------------------------------


 <asp:Panel ID="Panel1" runat="server"


           style="z-index: 1; left: 197px; top: 242px; position:
absolute; height: 57px; width: 531px">
           <asp:AccessDataSource ID="AccessDataSource1" runat="server"
               DataFile="~/App_Data/ACCESSDB_8.accdb"
               DeleteCommand="DELETE FROM [vb_access_db8_tb1] WHERE
(([OrderID] = ?) OR ([OrderID] IS NULL AND ? IS NULL))"
               InsertCommand="INSERT INTO [vb_access_db8_tb1]
([OrderID], [Amount], [Tax]) VALUES (?, ?, ?)"
               SelectCommand="SELECT * FROM [vb_access_db8_tb1]"
               UpdateCommand="UPDATE [vb_access_db8_tb1] SET [Amount]
= ?, [Tax] = ? WHERE (([OrderID] = ?) OR ([OrderID] IS NULL AND ? IS
NULL))">
               <DeleteParameters>
                   <asp:Parameter Name="OrderID" Type="String" />
               </DeleteParameters>
               <InsertParameters>
                   <asp:Parameter Name="OrderID" Type="String" />
                   <asp:Parameter Name="Amount" Type="Double" />
                   <asp:Parameter Name="Tax" Type="Double" />
               </InsertParameters>
               <UpdateParameters>
                   <asp:Parameter Name="Amount" Type="Double" />
                   <asp:Parameter Name="Tax" Type="Double" />
                   <asp:Parameter Name="OrderID" Type="String" />
               </UpdateParameters>
           </asp:AccessDataSource>
       </asp:Panel>

       <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
           AllowSorting="True" AutoGenerateColumns="False"
AutoGenerateDeleteButton="True"
           AutoGenerateEditButton="True" AutoGenerateSelectButton="True"
           DataKeyNames="OrderID" DataSourceID="AccessDataSource1"
           style="z-index: 1; left: 204px; top: 354px; position:
absolute; height: 127px; width: 470px">
           <Columns>
               <asp:BoundField DataField="OrderID"
HeaderText="OrderID" ReadOnly="True"
                   SortExpression="OrderID" />
               <asp:BoundField DataField="Amount" HeaderText="Amount"
                   SortExpression="Amount" />
               <asp:BoundField DataField="Tax" HeaderText="Tax"
SortExpression="Tax" />
           </Columns>
       </asp:GridView>
0
Comment
Question by:somits
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 38

Accepted Solution

by:
PaulHews earned 500 total points
ID: 37743089
Your Update command has 4 parameters.

UpdateCommand="UPDATE [vb_access_db8_tb1] SET [Amount]
= ?, [Tax] = ? WHERE (([OrderID] = ?) OR ([OrderID] IS NULL AND ? IS
NULL))"

You must provide a value for every parameter or change your command.
0
 

Author Comment

by:somits
ID: 37743264
Hi PaulHews:

You're right. I didn't set the Primary Key field OrderID as Required in the Access table.
Therefore, VS generates more ? in the command statement of update.

Thanks so much for your help.

Somits
0
 

Author Comment

by:somits
ID: 37743269
Everything works correctly now.

Really appreciated,

Somits
0

Featured Post

Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It’s been over a month into 2017, and there is already a sophisticated Gmail phishing email making it rounds. New techniques and tactics, have given hackers a way to authentically impersonate your contacts.How it Works The attack works by targeti…
Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
Familiarize people with the process of utilizing SQL Server stored procedures from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Micr…
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question