TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Tsjallie
NA
21
1.2k
OleDbDataReader throws error: Missing Parameters
Nov 10 2019 3:28 PM
Hi all!
New on his forum. I'm learning C# for about a month now. Met a lot of problems of course, but so far managed to crack 'm all by trying and searching the internet (that's just the way I learn best and how I mastered vba before).
But (hate to admit) now I've stumbled upon an issue I can't seem te solve nor have I been able to find a solution on the internet.
So need some help here.
I have a method retrieving 0 or more records from an Access db which works fine. Retrieved data is moved to datagridview cells.
private
void
Calendar_PopulatePeriod(DateTime Period)
{
OleDbCommand cmd =
new
OleDbCommand(
"SELECT [PropertyId], [Period], [CalendarText], [StayId] "
+
"FROM EVBookings "
+
"WHERE [Period] = @PeriodCol "
+
"ORDER BY [Period]"
, conn);
cmd.Parameters.AddWithValue(
"@PeriodCol"
, Period);
OleDbDataReader rdr = cmd.ExecuteReader();
int
b = 0;
while
(rdr.Read())
{
ome code....
}
}
Then I have a second method retrieving 1 record which I based on this working method, but which just won't work.
Retrieved data should go to text boxes on a form.
I keep getting this error message:
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll
Additional information: Values for one or more required parameters are missing.
This is the code of the method which is syntactically equal to the first mentioned (working) method:
private
void
GetStayDetails(
double
StayId)
{
OleDbCommand cmd =
new
OleDbCommand(
"SELECT [GuestName] , [Date In], [Date Out], [OpenEnded], "
+
`
[First Month Rent], [Security Deposit], [Monthly Rent], "
+
"[First Month Rent To Owner], [Monthly Rent To Owner], "
+
"[ES Mgt Fee] "
+
"FROM Stays "
+
"WHERE StayId = @StayId"
, conn);
cmd.Parameters.AddWithValue(
"@StayId"
, StayId);
OleDbDataReader rdr = cmd.ExecuteReader();
while
(rdr.Read())
{
Debug.WriteLine(
"==> "
+ rdr.GetValue(0));
}
}
When searching for what's causing the error I tried the following alternative sql commands:
OleDbCommand cmd =
new
OleDbCommand(
"SELECT [StayId], [GuestName] FROM Stays"
, conn);
OleDbCommand cmd =
new
OleDbCommand(
"SELECT [StayId], [GuestName] FROM Stays"
, conn);OleDbCommand cmd =
new
OleDbCommand(
"SELECT * FROM Stays WHERE [StayId] = @StayId"
, conn);
OleDbCommand cmd =
new
OleDbCommand(
"SELECT [StayId], [GuestName] FROM Stays WHERE [StayId] = 6500010"
, conn);
All three work fine.
But this one gives the error again:
OleDbCommand cmd =
new
OleDbCommand(
"SELECT [StayId], [GuestName] FROM Stays WHERE [StayId] = @Stayid"
, conn);
I have not a clue why the sql in one method works fine but not in the other.
Let me know if I need to supply more detail.
Cheers!
Tsjallie
Reply
Answers (
7
)
Why we use generic repository pattern
Gridview within dynamic dropdownlist null exception