I have a SPROC in MySQL
which is called from my .NET code like so.Code:DELIMITER $$ DROP PROCEDURE IF EXISTS `GetCompany` $$ CREATE PROCEDURE `GetCompany`( companyref INT, companyname VARCHAR (60) ) BEGIN SET @ref = companyref; SET @companyname = companyname; SELECT companies.companyref, companies.name, companies.web, companies.domain, companies.dtAdded, companies.ipadd, companies.addedBy, CONCAT(users.forename,' ',users.surname) AS addedByUser FROM companies LEFT JOIN users ON companies.addedBy=users.userref WHERE companies.companyref=if(@ref=0,companies.companyref,@ref) AND companies.name=if(ISNULL(@companyname),companies.name,@companyname) ; END $$ DELIMITER ;
However, when it executes I get an error System.ArgumentException: Parameter '?companyname' not found in the collection.Code:Dim conn As New MySqlConnection(mybwGlobal.connString) Dim mycomm As New MySqlCommand("GetCompany", conn) mycomm.CommandType = Data.CommandType.StoredProcedure Dim rs As MySqlDataReader Using conn Using mycomm Try mycomm.Parameters.Add(New MySqlParameter("companyref", ref)) Dim nameP As New MySqlParameter("companyname", MySqlDbType.VarChar) If String.IsNullOrEmpty(name) Then nameP.Value = DBNull.Value Else nameP.Value = name End If conn.Open() rs = mycomm.ExecuteReader If rs.HasRows Then rs.Read() newCompany = New Company(rs("companyref"), rs("name")) End If rs.Close()
I just don't understand why it's not working...Any ideas?



LinkBack URL
About LinkBacks
Reply With Quote

Bookmarks