Jag har ett mycket underligt problem, jag har en lagrad procedur soom ser ut så här. Efter att ha skrivit om min kod ett antal gånger har jag fått det att fungera så här.Fel på parametrar?
<code>
ALTER PROCEDURE [dbo].[getOnlySub]
@catID int
AS SELECT subCatID, subCategory
FROM subCategory
WHERE CatID = @catID
</code>
Sen har jag kod på min sida som ser ut så här, jag tar inte med all kod utan bara SQL-delen.
<code>
// SQL commands...
SqlCommand cmd = new SqlCommand("getOnlySub", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@catID", SqlDbType.Int, 4));
cmd.Parameters["@catID"].Value = 1;
</code>
Jag får felmeddelande på detta felet är: <b>Procedure or Function 'getOnlySub' expects parameter '@catID', which was not supplied.</b> Är det någon som kan se vad jag har gjort för fel? Jag har slagit i böcker och sökt på nätet, men jag kan inte fatta eller hitta vad som är fel. "Ettan" kommer jag att byta ut mot en variabel, men jag har den för att var helt säker på att det är ett heltal som skickas till proceduren. Kör jag proceduren i SQL-Server fungerar den utmärkt.Sv: Fel på parametrar?
<code>
SqlParameter param = new SqlParameter();
param.ParameterName = "@catID";
param.Value = myCatID;
param.SqlDbType = SqlDbType.Int;
try
{
conn.Open();// Open the connection...
DataSet ds = new DataSet(); // New Dataset...
SqlDataAdapter da = new SqlDataAdapter("getOnlySub", conn); // New sqldatareader...
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Parameters.Add(param);
</code>
Detta är kanske inget bra sätt, finns det nåt bättre sätt tar jag gärna emot förslagen.