c# og MySQL stored procedure indsætter kun 1 row
Hej. Som overskriften siger.Min stored procedure ser sådan ud:
CREATE DEFINER=`root`@`%` PROCEDURE `createFarm`(IN farmid INT)
BEGIN
DECLARE number INT;
SELECT COUNT(*) INTO number FROM farm WHERE farmId = farmid;
IF number = 0 THEN
INSERT INTO farm (farmId) VALUES (farmid);
END IF;
END
Og min kode ser sådan ud:
public bool Insert(FarmAssData farmAssData)
{
con.Open();
MySqlCommand cmd = new MySqlCommand("createFarm", con);
MySqlTransaction trans;
trans = con.BeginTransaction();
cmd.Connection = con;
cmd.Transaction = trans;
try
{
cmd.Parameters.Add(new MySqlParameter("farmid", farmAssData.AccountCode));
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
trans.Commit();
}
catch (Exception e)
{
try
{
trans.Rollback();
}
catch (MySqlException MyEx)
{
if (trans.Connection != null)
throw new Exception("An error occured while trying to rollback: " + MyEx.Message);
}
throw e;
}
finally
{
con.Close();
}
return true;
}
Jeg køre insert metoden en masse gange i en løkke et andet sted fra, men det er kun den første row der bliver indsat i databasen.
Nogen der kan forklare hvorfor?
Jeg giver de mange points fordi det haster..