Read answers on SO regarding similar Q's and tried a few out but to no joy. Using PostGresql I want to add a record to the table and record the value in the 'id' column of that record.
Tried currval, and RETURNING...crashes on Id = int.Parse(sqlcmd.ExecuteScalar().ToString()); Any ideas on what I am doing wrong?
        try
        {
            StringBuilder command = new StringBuilder();
            command.Append("resultId BIGINT");
            command.Append("INSERT INTO image_table (\"id\", \"table_name\", \"file_name\", \"image_data\", \"creation_date\") ");
            command.Append("VALUES ('" + ID + "', '" + tableName + "', '" + fileName + "', @Image, (SELECT LOCALTIMESTAMP))");
            command.Append("RETURNING id INTO resultId;"); 
            //command.Append("SELECT currval('id');"); 
            //command.Append("RETURNING id;"); 
            //command.Append("SELECT @@IDENTITY");
            using (NpgsqlCommand sqlcmd = CreateTextCommand(command.ToString(), connectionDataString))
            {
                sqlcmd.Parameters.AddWithValue("@Image", imageAsBytes);
                Id = int.Parse(sqlcmd.ExecuteScalar().ToString());
            }
        }
        catch (Exception ex)
        {
            throw (ex);
        }
        finally
        {
            CloseConnection();
        }
        return Id;
    }
Please see Get the last insert id from : http://www.postgresqltutorial.com/postgresql-insert/
isn't this what I am doing?
Update I got it using
K  command.Append("INSERT INTO image_table (\"id\", \"table_name\", \"file_name\", \"image_data\", \"creation_date\") ");
                command.Append("VALUES ('" + ID + "', '" + tableName + "', '" + fileName + "', @Image, (SELECT LOCALTIMESTAMP))");
                command.Append("RETURNING id;");
  using (NpgsqlCommand sqlcmd = CreateTextCommand(command.ToString(), connectionDataString))
                {
                    sqlcmd.Parameters.AddWithValue("@Image", imageAsBytes);
                    Id = int.Parse(sqlcmd.ExecuteScalar().ToString());
                }  
 
     
    