C# sql server返回long.parse显示错误

C# sql server返回long.parse显示错误,c#,sql,.net,sql-server,ado.net,C#,Sql,.net,Sql Server,Ado.net,我当前的问题是SQL server。我正在编写自己的查询,其中一个查询是针对表中的INSERT数据。这很容易做到。不容易的是我在测试期间收到的错误。我只是中断了每个步骤,所有的工作都很好,除了最后的结果 长时间的问题是什么?因为当我使用bool时,它工作得很好,但我需要使用long 现在让我们看看我的内部代码: public long Create(TPerson person) { using (SqlConnection connection = new SqlConnection(

我当前的问题是SQL server。我正在编写自己的查询,其中一个查询是针对表中的
INSERT
数据。这很容易做到。不容易的是我在测试期间收到的错误。我只是中断了每个步骤,所有的工作都很好,除了最后的结果

长时间的问题是什么?因为当我使用
bool
时,它工作得很好,但我需要使用long

现在让我们看看我的内部代码:

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());
    }
}
当我在第行有断点时:
返回long.Parse(cmd.ExecuteScalar().ToString())和我跳入,有一个错误:

“类型为'System.NullReferenceException'的未处理异常” 在Business.WeighingSystem.dll中发生

其他信息:对象引用未设置为 对象。”

我真的不知道,什么对象我不必设置实例


谢谢你的每一个提示!:)

您似乎试图返回受命令影响的行数。在这种情况下,您需要改为使用:

基于:

对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。当插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及受触发器影响的行数。对于所有其他类型的语句,返回值为-1。如果发生回滚,则返回值也是-1


结果集中第一行的第一列,如果结果集为空,则为空引用(在Visual Basic中为Nothing)-可能与要返回的值重复?根据签名,我希望返回刚刚创建的人的ID,但是到目前为止,您得到的答案将给您一个不同的号码;在插入查询中选择IDENT_CURRENT()
?谢谢。它工作起来很有魅力!你是天才:)
return long.Parse(cmd.ExecuteNonQuery());