2017-04-05 2 views
0

Ich erhalte diese Fehlermeldung, wenn ich versuche, eine Seite zu laufen ..Die parametrisierte Abfrage

Die parametrisierte Abfrage '(@Medication nvarchar (14), @ Menge nvarchar (9), @ RequestedDate n' den Parameter '@RequestedDate' erwartet, die geliefert wurde nicht

das ist mein Code-Behind-Datei ist.

Dim conn As SqlConnection 
Dim cmd As SqlCommand 

'Getting today's date to store into database to let staff know when prescription was ordered 
'reference for this code : - https://msdn.microsoft.com/en-us/library/system.datetime.today(v=vs.110).aspx 

Dim thisDay As DateTime = DateTime.Today 
Session("DateRequested") = (thisDay.ToString()) 
Dim Medication As String 
Dim Quantity As String 
Dim RequestedDate As String 
Dim Pharmacy As String 
Dim PatientNumber As String 

Medication = txtDrug1.Text + " " + txtDrug2.Text + " " + txtDrug3.Text + " " + txtDrug4.Text + " " + txtDrug5.Text 
Quantity = txtQuant1.Text + " " + txtQuant2.Text + " " + txtQuant3.Text + " " + txtQuant4.Text + " " + txtQuant5.Text 

RequestedDate = Session("Date Requested") 
PatientNumber = Session("PatientNumber") 
Pharmacy = txtPharmacy.Text 

Dim cmdstring As String = "INSERT INTO Prescription (Medication, QntyandStrength, RequestedDate, Pharmacy, PatientNumber) Values (@Medication, @Quantity, @RequestedDate, @Pharmacy, @PatientNumber)" 

conn = New SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\User\Documents\Visual Studio 2015\WebSites\myAppointments\App_Data\Database.mdf;Integrated Security=True") 
cmd = New SqlCommand(cmdstring, conn) 

cmd.Parameters.AddWithValue("@Medication", Medication) 
cmd.Parameters.AddWithValue("@Quantity", Quantity) 
cmd.Parameters.AddWithValue("@RequestedDate", RequestedDate) 
cmd.Parameters.AddWithValue("@Pharmacy", Pharmacy) 
cmd.Parameters.AddWithValue("@PatientNumber", PatientNumber) 

conn.Open() 

cmd.ExecuteNonQuery() 
conn.Close() 

MsgBox("Your Prescription Has Been Requested!") 

und die Datenbank-Typen sind:

[PrescriptionNumber] INT   NOT NULL, 
[Medication]   NVARCHAR(250) NULL, 
[QntyandStrength] NVARCHAR(250) NULL, 
[RequestedDate]  NVARCHAR(70) NULL, 
[Pharmacy]   VARCHAR (50) NULL, 
[PatientNumber]  CHAR (10) NULL, 

Irgendwelche Ratschläge, wie man das ändert?

+4

Warum speichern Sie ein Datum als Zeichenfolge? –

+0

Verwenden Sie '.Add' auch anstelle von '.AddWithValue' – Bugs

+0

Sind Sie sicher, dass in dieser Zeile' RequestedDate = Session ("Date Requested") 'das' RequestedDate' einen _actual_ Wert anstelle von 'Nothing' hat? – Cameron

Antwort

0

Ihr Verweis auf die Sitzungsvariable ist falsch, wie Chris Dunaway darauf hingewiesen hat.

Sie deklarieren die Variable, und weisen Sie den Wert:

Session("DateRequested") = (thisDay.ToString()) 

... aber dann finden Sie es mit einem anderen Namen ...

RequestedDate = Session("Date Requested") ''This variable name has a space. 

Also, wenn Sie den Parameter übergeben ...

cmd.Parameters.AddWithValue("@RequestedDate", RequestedDate) 

... Sie übergeben einen Verweis auf ein Nullobjekt. Es gibt keine Sitzung ("Datum angefordert").

+0

Hey alle, ja Fehler mit meinen dummen Augen gab es Platz in der Sitzung, es funktioniert endlich, vielen Dank für die Hilfe! –

Verwandte Themen