PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara meneruskan parameter ke fungsi postgre dan mendapatkan data menggunakan ExecuteReader?

Tanpa kerangka entitas, Anda perlu menulis kode yang membaca nilai dari pembaca data ke dalam instance AccountInfo Anda kelas:

public static AccountInfo GetAccountInfo(string accountNumber)
{
    AccountInfo result = null;
    using(var conn = new NpgsqlConnection("..."))
    {
        conn.Open();
        using(var command = new NpgsqlCommand("SELECT * FROM sms.get_accounts_info(@AccountNumber); ", conn))
        {
            command.Parameters.AddWithValue("@AccountNumber", accountNumber);
            using(var dr = command.ExecuteReader())
            {
                if(dr.HasRows && dr.Read())
                {
                    result = new AccountInfo { 
                        accountNumber = dr["accountNumber"].ToString(),
                        balance = dr["balance"].ToString(),
                        interestRate = Convert.ToInt32(dr["interestRate"]),
                        accountName = dr["accountName"].ToString()
                    };
                }
            }
        }
    }
    return result;
}

Perhatikan bahwa tipe pengembalian fungsi telah diubah menjadi AccountInfo , sebelumnya string. Juga, itu terbatas untuk membaca hanya satu catatan, Jika satu panggilan ke sms.get_accounts_info bisa kembali lebih dari satu catatan, itu adalah cerita yang berbeda. Saya hanya berasumsi bahwa account_number adalah kunci utama dalam account_holders tabel.

Beberapa detail membutuhkan perhatian Anda, misalnya balance adalah uang dalam database, tetapi string di kelas. Saya juga tidak tahu apakah dan bagaimana product (database) dan accountType (kelas) akan sesuai, jadi saya menghilangkannya.

Koneksi database, perintah, dan pembaca data IDisposable dan harus dibungkus dengan using blok.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INSERT atau UPDATE data massal dari dataframe/CSV ke database PostgreSQL

  2. Saya ingin menampilkan dalam file postgis yang kurang dari 10.000 meter dan jarak yang dihitung

  3. menyegarkan tampilan terwujud secara berkala postgres

  4. Fungsi agregat PostgreSQL melebihi jangkauan

  5. Postgresql, pilih bidang kosong