dumbasian Ответов: 2

Не существует сопоставления типа объекта с известным собственным типом управляемого поставщика.


Итак, вот мой код...

string connectionString = null;
                string sql = null;
                connectionString = "Server=(localdb)\\v11.0;Integrated Security=true;";
                using (SqlConnection cnn = new SqlConnection(connectionString))
                {
                    sql = "INSERT INTO EmailParser (Sender,Building,Level,Phase,Request) values(@Sender,@Building,@Level,@Phase,@Request)";
                    cnn.Open();
                    using (SqlCommand cmd = new SqlCommand(sql, cnn))
                    {
                        String d1 = m.Groups[4].ToString();
                        String d2 = m.Groups[9].ToString();
                        String int1 = m.Groups[14].ToString();
                        String word1 = m.Groups[19].ToString();

                        cmd.Parameters.AddWithValue("@Sender", email.From);
                        cmd.Parameters.AddWithValue("@Building", d1);
                        cmd.Parameters.AddWithValue("@Level", d2);
                        cmd.Parameters.AddWithValue("@Phase", int1);
                        cmd.Parameters.AddWithValue("@Request", word1);
                       
                        cmd.ExecuteNonQuery();}


D1, d2, int1 и word1 взяты из регулярного выражения...

string re4 = "(\\d)";
string re9 = "(\\d)";
string re14 = "(\\d+)";
string re19 = "([A-Za-z0-9/-]+)";


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

Я думаю, что ошибка связана с параметрами, но я все еще не могу понять, что не так с моим кодом. d1, d2, int1 и word1 все находятся в строке, так почему же они не могут быть вставлены в мою базу данных? Все типы данных полей-это nvarchar. Я предполагаю, что nvarchar-это строки, верно?

Richard Deeming

Какой тип делает email.From возврат имущества?

dumbasian

Это веревка. Что он делает, так это извлекает тело электронной почты. Я получил его от Limilabs.

dumbasian

Я исправился. Я имею в виду от или отправителя письма.

dumbasian

В любом случае, спасибо, что указали на это! Я только что заметил, что не преобразовал письмо.Из в строку! Спасибо! Мне кажется, я знаю, кто виноват.

2 Ответов

Рейтинг:
19

ZurdoDev

Ошибка возникает при отправке объекта в качестве значения параметра. Это должна быть строка, int, bool и т. д.

Скорее всего, это электронная почта. Вызов.ToString() или как-то передать как string.


Рейтинг:
1

Member 13567672

cmd = New SqlCommand("вставить в значения EquipmentType(@EquipmentTypeID,@EquipmentName)", conn)
cmd.параметры.AddWithValue("@EquipmentTypeID", txtEquipmentTypeID)
cmd.параметры.AddWithValue("@EquipmentName", txtEquipmentTypeName)
УМК.Метод executenonquery()
showEquipmenttype()
txtEquipmentTypeID.Четкий()
txtEquipmentTypeName.Четкий()
txtEquipmentTypeID.Сосредоточить()


CHill60

Это не имеет никакого отношения к вопросу!