SQL Query在DB中工作,但在代码中它提供:System.NullReferenceException

时间:2016-03-13 07:15:08

标签: c# sql select

        NpgsqlConnection conn = new NpgsqlConnection(Settings.ConnectionString);
        conn.Open();
        NpgsqlCommand command = new NpgsqlCommand("select def_id from datatable where definition_id='00026b41-11e5-4557-823c-376a17e8253f'", conn);
        Int16 _data =  (Int16)command.ExecuteScalar();

这适用于SQL,但不适用于代码。

我收到了System.NullReferenceException。 我使用npgsql btw。 所选列具有smallInt格式。 另一个指导。 当我反向选择并尝试读取另一个表并将数据类型更改为guid相同的错误

都适用于SQL

1 个答案:

答案 0 :(得分:1)

command.ExecuteScalar();不返回任何值,例外情况是因为您想将其强制转换为Int16。你可以这样做:

Int16 _data =  (Int16)(command.ExecuteScalar() ?? 0);