Ошибка sql server long.parse показать ошибку

Моя текущая проблема связана с SQL-сервером. Я пишу свои собственные запросы, а один запрос - для INSERTданных внутри таблицы. Это легко сделать. То, что нелегко, - это ошибка, которую я получил во время тестирования. Я просто остановил все шаги, и все работает нормально, кроме конечного результата.

Долго ли проблема? Потому что, когда я использую bool, он работает отлично, но мне нужно использовать долго.

Теперь посмотрим, что у меня внутри кода:

public long Create(TPerson person)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        var insert = string.Format(@"INSERT INTO CisOsoba(Jmeno, Prijmeni, Email, TelKlapka, TelKlapka2, TelMob)
                                         VALUES(@jmeno, @prijmeni, @email, @telKlapka, @telKlapka2, @telMob)");

        connection.Open();
        SqlCommand cmd = new SqlCommand(insert, connection);

        cmd.Parameters.AddWithValue("@jmeno", person.FirstName);
        cmd.Parameters.AddWithValue("@prijmeni", person.LastName);
        cmd.Parameters.AddWithValue("@email", person.Email);
        cmd.Parameters.AddWithValue("@telKlapka", person.Phone1);
        cmd.Parameters.AddWithValue("@telKlapka2", person.Phone2);
        cmd.Parameters.AddWithValue("@telMob", person.PhoneMob);

        return long.Parse(cmd.ExecuteScalar().ToString());
    }
}

Когда у меня есть точка останова на линии: return long.Parse(cmd.ExecuteScalar().ToString());и я прыгаю внутрь, возникает ошибка:

«Необработанное исключение типа« System.NullReferenceException »произошло в Business.WeighingSystem.dll

Дополнительная информация: Ссылка на объект не установлена ??в экземпляр объекта. "

Я понятия не имею, какой объект мне не нужно устанавливать.

Спасибо за каждый совет! :)

c#,sql,.net,sql-server,ado.net,

2

Ответов: 1


4 принят

Кажется, вы пытаетесь вернуть количество строк, затронутых этой командой. В этом случае вам нужно использовать ExecuteNonQueryвместо этого:

return long.Parse(cmd.ExecuteNonQuery());

На основе MSDN :

Для операторов UPDATE, INSERT и DELETE возвращаемое значение представляет собой количество строк, на которые влияет команда. Когда триггер существует в вставленной или обновляемой таблице, возвращаемое значение включает в себя количество строк, затронутых как операцией вставки, так и обновлением, а также количеством строк, затронутых триггером или триггерами. Для всех других типов операторов возвращаемое значение равно -1. Если происходит откат, возвращаемое значение равно -1.

C #, SQL, .net, SQL-сервер, ado.net,
Похожие вопросы