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.