System.Data.OleDb.OleDbException: No value given for one or more required parameters.
this error is showing up when i try to update the access database in my project
i havent use any command
i am updating it through gridview control
Then your command is in your datasource control. I guess you didn't specify the parameters in the updateparameter collection, because when using Access, these are not generated automatically by the wizard. Show us the gridview and datasource?
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
DeleteCommand="DELETE FROM [student] WHERE (([s_name] = ?) OR ([s_name] IS NULL AND ? IS NULL)) AND (([rollno] = ?) OR ([rollno] IS NULL AND ? IS NULL)) AND (([dob] = ?) OR ([dob] IS NULL AND ? IS NULL)) AND (([add] = ?) OR ([add] IS NULL AND ? IS NULL))"
InsertCommand="INSERT INTO [student] ([s_name], [rollno], [dob], [add]) VALUES (?, ?, ?, ?)"
OldValuesParameterFormatString="original_{0}"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand="SELECT * FROM [student]"
UpdateCommand="UPDATE [student] SET [rollno] = ?, [dob] = ?, [add] = ? WHERE (([s_name] = ?) OR ([s_name] IS NULL AND ? IS NULL)) AND (([rollno] = ?) OR ([rollno] IS NULL AND ? IS NULL)) AND (([dob] = ?) OR ([dob] IS NULL AND ? IS NULL)) AND (([add] = ?) OR
([add] IS NULL AND ? IS NULL))">
<DeleteParameters>
<asp:Parameter Name="original_s_name" Type="String" />
<asp:Parameter Name="original_rollno" Type="Int32" />
<asp:Parameter Name="original_dob" Type="DateTime" />
<asp:Parameter Name="original_add" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="rollno" Type="Int32" />
<asp:Parameter Name="dob" Type="DateTime" />
<asp:Parameter Name="add" Type="String" />
<asp:Parameter Name="original_s_name" Type="String" />
<asp:Parameter Name="original_rollno" Type="Int32" />
<asp:Parameter Name="original_dob" Type="DateTime" />
<asp:Parameter Name="original_add" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="s_name" Type="String" />
<asp:Parameter Name="rollno" Type="Int32" />
<asp:Parameter Name="dob" Type="DateTime" />
<asp:Parameter Name="add" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
ConflictDetection="CompareAllValues" DataFile="~/App_Data/student.mdb.mdb"
DeleteCommand="DELETE FROM [student] WHERE (([s_name] = ?) OR ([s_name] IS NULL AND ? IS NULL)) AND (([rollno] = ?) OR ([rollno] IS NULL AND ? IS NULL)) AND (([dob] = ?) OR ([dob] IS NULL AND ? IS NULL)) AND (([add] = ?) OR ([add] IS NULL AND ? IS NULL))"
InsertCommand="INSERT INTO [student] ([s_name], [rollno], [dob], [add]) VALUES (?, ?, ?, ?)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [student]"
UpdateCommand="UPDATE [student] SET [rollno] = ?, [dob] = ?, [add] = ? WHERE (([s_name] = ?) OR ([s_name] IS NULL AND ? IS NULL)) AND (([rollno] = ?) OR ([rollno] IS NULL AND ? IS NULL)) AND (([dob] = ?) OR ([dob] IS NULL AND ? IS NULL)) AND (([add] = ?) OR
([add] IS NULL AND ? IS NULL))">
<DeleteParameters>
<asp:Parameter Name="original_s_name" Type="String" />
<asp:Parameter Name="original_rollno" Type="Int32" />
<asp:Parameter Name="original_dob" Type="DateTime" />
<asp:Parameter Name="original_add" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="rollno" Type="Int32" />
<asp:Parameter Name="dob" Type="DateTime" />
<asp:Parameter Name="add" Type="String" />
<asp:Parameter Name="original_s_name" Type="String" />
<asp:Parameter Name="original_rollno" Type="Int32" />
<asp:Parameter Name="original_dob" Type="DateTime" />
<asp:Parameter Name="original_add" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="s_name" Type="String" />
<asp:Parameter Name="rollno" Type="Int32" />
<asp:Parameter Name="dob" Type="DateTime" />
<asp:Parameter Name="add" Type="String" />
</InsertParameters>
</asp:AccessDataSource>
The problem is that you're using questionmarks as parameters. This is fine, but you must realize that Access threads every questionmark as a seperate parameter, but in your WHERE clause, your intention is to use the same parameter(s) multiple times. You
can solve this in 2 ways. The first way is to specify some parameters twice in the parameter collection, but I don't think this is a good idea. The best way is to use named parameters (although this is not supporred in Access according to MSDN, it does work!)
instead of the questionmarks.
u solved my problem man but
i cant write this as answer i have drag n drop the tools from toolbx
and in your example you have generated gridview on your own through coding
so can u pls hlp further or i have to mark this as answe coz u are right in manual sense but what about my problem???
kpawii
Member
9 Points
25 Posts
databse updation error
Mar 28, 2012 06:05 AM|LINK
System.Data.OleDb.OleDbException: No value given for one or more required parameters.
this error is showing up when i try to update the access database in my project
shivalthakur
Participant
1861 Points
541 Posts
Re: databse updation error
Mar 28, 2012 06:08 AM|LINK
Can you please show us your update command.
Regards
Response.Write("Success");
Best Of Luck
Shival Thakur
kpawii
Member
9 Points
25 Posts
Re: databse updation error
Mar 28, 2012 06:18 AM|LINK
i havent use any command
i am updating it through gridview control
hans_v
All-Star
35998 Points
6551 Posts
Re: databse updation error
Mar 28, 2012 07:29 AM|LINK
Then your command is in your datasource control. I guess you didn't specify the parameters in the updateparameter collection, because when using Access, these are not generated automatically by the wizard. Show us the gridview and datasource?
kpawii
Member
9 Points
25 Posts
Re: databse updation error
Mar 28, 2012 08:01 AM|LINK
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
DeleteCommand="DELETE FROM [student] WHERE (([s_name] = ?) OR ([s_name] IS NULL AND ? IS NULL)) AND (([rollno] = ?) OR ([rollno] IS NULL AND ? IS NULL)) AND (([dob] = ?) OR ([dob] IS NULL AND ? IS NULL)) AND (([add] = ?) OR ([add] IS NULL AND ? IS NULL))"
InsertCommand="INSERT INTO [student] ([s_name], [rollno], [dob], [add]) VALUES (?, ?, ?, ?)"
OldValuesParameterFormatString="original_{0}"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand="SELECT * FROM [student]"
UpdateCommand="UPDATE [student] SET [rollno] = ?, [dob] = ?, [add] = ? WHERE (([s_name] = ?) OR ([s_name] IS NULL AND ? IS NULL)) AND (([rollno] = ?) OR ([rollno] IS NULL AND ? IS NULL)) AND (([dob] = ?) OR ([dob] IS NULL AND ? IS NULL)) AND (([add] = ?) OR ([add] IS NULL AND ? IS NULL))">
<DeleteParameters>
<asp:Parameter Name="original_s_name" Type="String" />
<asp:Parameter Name="original_rollno" Type="Int32" />
<asp:Parameter Name="original_dob" Type="DateTime" />
<asp:Parameter Name="original_add" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="rollno" Type="Int32" />
<asp:Parameter Name="dob" Type="DateTime" />
<asp:Parameter Name="add" Type="String" />
<asp:Parameter Name="original_s_name" Type="String" />
<asp:Parameter Name="original_rollno" Type="Int32" />
<asp:Parameter Name="original_dob" Type="DateTime" />
<asp:Parameter Name="original_add" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="s_name" Type="String" />
<asp:Parameter Name="rollno" Type="Int32" />
<asp:Parameter Name="dob" Type="DateTime" />
<asp:Parameter Name="add" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" AllowSorting="True"
AutoGenerateColumns="False" DataKeyNames="s_name" DataSourceID="SqlDataSource2">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="s_name" HeaderText="s_name" ReadOnly="True"
SortExpression="s_name" />
<asp:BoundField DataField="rollno" HeaderText="rollno"
SortExpression="rollno" />
<asp:BoundField DataField="dob" HeaderText="dob" SortExpression="dob" />
<asp:BoundField DataField="add" HeaderText="add" SortExpression="add" />
</Columns>
</asp:GridView>
there are the views
kpawii
Member
9 Points
25 Posts
Re: databse updation error
Mar 28, 2012 08:11 AM|LINK
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
ConflictDetection="CompareAllValues" DataFile="~/App_Data/student.mdb.mdb"
DeleteCommand="DELETE FROM [student] WHERE (([s_name] = ?) OR ([s_name] IS NULL AND ? IS NULL)) AND (([rollno] = ?) OR ([rollno] IS NULL AND ? IS NULL)) AND (([dob] = ?) OR ([dob] IS NULL AND ? IS NULL)) AND (([add] = ?) OR ([add] IS NULL AND ? IS NULL))"
InsertCommand="INSERT INTO [student] ([s_name], [rollno], [dob], [add]) VALUES (?, ?, ?, ?)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [student]"
UpdateCommand="UPDATE [student] SET [rollno] = ?, [dob] = ?, [add] = ? WHERE (([s_name] = ?) OR ([s_name] IS NULL AND ? IS NULL)) AND (([rollno] = ?) OR ([rollno] IS NULL AND ? IS NULL)) AND (([dob] = ?) OR ([dob] IS NULL AND ? IS NULL)) AND (([add] = ?) OR ([add] IS NULL AND ? IS NULL))">
<DeleteParameters>
<asp:Parameter Name="original_s_name" Type="String" />
<asp:Parameter Name="original_rollno" Type="Int32" />
<asp:Parameter Name="original_dob" Type="DateTime" />
<asp:Parameter Name="original_add" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="rollno" Type="Int32" />
<asp:Parameter Name="dob" Type="DateTime" />
<asp:Parameter Name="add" Type="String" />
<asp:Parameter Name="original_s_name" Type="String" />
<asp:Parameter Name="original_rollno" Type="Int32" />
<asp:Parameter Name="original_dob" Type="DateTime" />
<asp:Parameter Name="original_add" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="s_name" Type="String" />
<asp:Parameter Name="rollno" Type="Int32" />
<asp:Parameter Name="dob" Type="DateTime" />
<asp:Parameter Name="add" Type="String" />
</InsertParameters>
</asp:AccessDataSource>
hans_v
All-Star
35998 Points
6551 Posts
Re: databse updation error
Mar 28, 2012 09:18 AM|LINK
The problem is that you're using questionmarks as parameters. This is fine, but you must realize that Access threads every questionmark as a seperate parameter, but in your WHERE clause, your intention is to use the same parameter(s) multiple times. You can solve this in 2 ways. The first way is to specify some parameters twice in the parameter collection, but I don't think this is a good idea. The best way is to use named parameters (although this is not supporred in Access according to MSDN, it does work!) instead of the questionmarks.
http://www.mikesdotnetting.com/Article/68/An-ASP.NET-Search-Engine-with-MS-Access-for-optional-search-criteria
kpawii
Member
9 Points
25 Posts
Re: databse updation error
Mar 28, 2012 02:46 PM|LINK
u solved my problem man but
i cant write this as answer i have drag n drop the tools from toolbx
and in your example you have generated gridview on your own through coding
so can u pls hlp further or i have to mark this as answe coz u are right in manual sense but what about my problem???
hans_v
All-Star
35998 Points
6551 Posts
Re: databse updation error
Mar 28, 2012 07:25 PM|LINK
Unfortunatly, Access is not fully supported by the wizards in Visual Srudio. So you'll always need to do some tuning to make it work....