stored procedure i MS SQL
HejNår jeg prøver at læse data fra min stored procedure funktion, få jeg denne fejlmelding:
Invalid attempt to read when no data is present.
Min stored procedure i MS SQL ser sådan ud:
ALTER PROCEDURe dbo.usp_GetUser
@initialer varchar(15)
AS
if (select id from brugere where (Initialer = @initialer)) is null
BEGIN
DECLARE @ErrorText varchar(100)
set @ErrorText ='Brugeren med initialerne '+ (@initialer) +' findes ikke i systemet';
RAISERROR (@ErrorText, 11, 1)
END
else
begin
SELECT navn, Aktiv, Brugertype FROM brugere where (Initialer = @initialer)
END
Min C# kode ser sådan ud:
Bruger b = null;
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmd = new SqlCommand("usp_GetUser", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@initialer", SqlDbType.VarChar);
cmd.Parameters["@initialer"].Direction = ParameterDirection.Input;
cmd.Parameters["@initialer"].Value = initialer;
SqlDataReader rdr = null;
try
{
conn.Open();
rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
string navn = (string)rdr["navn"];
string aktiv = "";
string brugerType = rdr.GetString(rdr.GetOrdinal("brugerType"));
b = new Bruger(navn, initialer, null, aktiv, brugerType);
}
}
finally
{
rdr.Close();
conn.Close();
}
return b;