Hello, I am new to C# and MySQL. I am trying to add data to a database and I get the following error.
System.Collections.Generic.KeyNotFoundException {"The given key was not present in the dictionary."}
Error is on the following line.
connection.Execute("splonglat_insert", p, commandType: CommandType.StoredProcedure);
I can add data to the database in MySQL.
using Dapper;
using LonglatLibrary.DataAccess;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
namespace LonglatLibrary
{
public class MySqlConnection : IDataConnection
{
public Longlatmodel CreateLonglat(Longlatmodel model)
{
using (IDbConnection connection = new MySql.Data.MySqlClient.MySqlConnection(GlobalConfig.CnnString("spead_im_testing")))
{
var p = new DynamicParameters();
p.Add("RailSiteCity", model.RailSiteCity);
p.Add("RailSiteState", model.RailSiteState);
p.Add("SiteLongitude", model.SiteLongitude);
p.Add("SiteLatitude", model.SiteLatitude);
p.Add("SiteLongitudeDirection", model.SiteLongitudeDirection);
p.Add("SiteLatitudeDirection", model.SiteLatidudeDirection);
p.Add("SiteCity", model.SiteCity);
p.Add("SiteState", model.SiteState);
connection.Execute("splonglat_insert", p, commandType: CommandType.StoredProcedure);
return model;
}
}
}
}
Below is my stored procedure. What am I missing?
CREATE DEFINER=`root`@`localhost` PROCEDURE `splonglat_insert`(in RailSiteCity varchar(35),
in RailSiteState varchar(2),
in SiteLongitude varchar(7),
in SiteLatitude varchar(7),
in SiteLongitudeDirection varchar(1),
in SiteLatitudeDirection varchar(1),
in SiteCity varchar(35),
in SiteState varchar(2))
BEGIN
insert into Longlat(RailSiteCity, RailSiteState, SiteLongitude, SiteLatitude, SiteLongitudeDirection, SiteLatitudeDirection, SiteCity, SiteState)
values(RailSiteCity, RailSiteState, SiteLongitude, SiteLatitude, SiteLongitudeDirection, SiteLatitudeDirection, SiteCity, SiteState);
END
What I have tried:
Not sure what to try. I am thinking I am missing something on the connection.Execute line but can't figure it out.