MIDCOPC Ответов: 0

C# и mysql добавили данные в базу данных


Здравствуйте, я новичок в C# и MySQL. Я пытаюсь добавить данные в базу данных и получаю следующую ошибку.

Система.Коллекции.Generic.KeyNotFoundException {"данный ключ не присутствовал в словаре."}
Ошибка находится в следующей строке.

соединение.Выполнить("splonglat_insert", п, свойство commandtype: значение commandtype.Хранимая процедура);

Я могу добавить данные в базу данных в MySQL.

using Dapper;
using LonglatLibrary.DataAccess;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
namespace LonglatLibrary
{
    //public class MySQLConnector : IDataConnection
      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;
            }
        }
    }
}



Ниже приведена моя хранимая процедура. Что я упускаю?
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


Что я уже пробовал:

Не знаю, что и попробовать. Я думаю, что упускаю что-то в этой связи.Выполняю линию, но не могу ее понять.

Richard Deeming

Из того, что я вижу, класс MySqlConnection[^] не содержит вызываемого метода Execute Это пользовательский метод расширения?

j snooze

Что-то не так с этой строкой, или свойство модели действительно написано с ошибкой? (Латидуде?)
п. Добавить("SiteLatitudeDirection", модель.SiteLatidudeDirection);

MIDCOPC

Я исправил орфографические ошибки. Появится форма windows, я могу ввести данные и нажать кнопку Обновить. Тогда я получаю ошибку. Система.Коллекции.Generic.KeyNotFoundException {"данный ключ не присутствовал в словаре."}

MIDCOPC

@Richard, я не думаю, что это пользовательское расширение. Я в этом новичок. Я посмотрю и посмотрю, могу ли я добавить к классу MySqlConnection. Спасибо

MIDCOPC

Обновление: я использую Dapper и MySQL. Я просмотрел код и исправил все орфографические ошибки. В MySQL я вижу соединение с базой данных, но все равно получаю ошибку, когда нажимаю кнопку Обновить.

0 Ответов