PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पैरामीटर को पोस्टग्रे फ़ंक्शन में कैसे पास करें और ExecuteReader का उपयोग करके डेटा प्राप्त करें?

एंटिटी फ्रेमवर्क के बिना, आपको वह कोड लिखना होगा जो आपके AccountInfo के इंस्टेंस में डेटारीडर के मानों को पढ़ता है कक्षा:

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;
}

ध्यान दें कि फ़ंक्शन के रिटर्न प्रकार को AccountInfo . में बदल दिया गया है , पहले स्ट्रिंग। साथ ही, यह केवल एक रिकॉर्ड पढ़ने तक सीमित है, यदि कोई sms.get_accounts_info पर कॉल करता है एक से अधिक रिकॉर्ड लौटा सकता है, यह एक अलग कहानी है। मैंने अभी यह मान लिया था कि account_number account_holders में प्राथमिक कुंजी है टेबल।

कुछ विवरणों पर आपको ध्यान देने की आवश्यकता है, उदाहरण के लिए balance डेटाबेस में पैसा है, लेकिन कक्षा में स्ट्रिंग है। साथ ही मुझे यह भी नहीं पता था कि product (डेटाबेस) और accountType (वर्ग) के अनुरूप होगा, इसलिए मैंने इसे छोड़ दिया।

डेटाबेस कनेक्शन, कमांड और डेटारीडर IDisposable हैं और using . में लपेटा जाना चाहिए ब्लॉक।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेस्क्ल:एनम और कैरेक्टर अलग-अलग, अपडेटिंग

  2. आर में int16/uint16 में PostgreSQL बाइटिया कॉलम हेक्स को डीकोड कैसे करें?

  3. एसएसएल सक्षम के साथ विंडोज़ पर PHP के लिए पोस्टग्रेएसक्यूएल क्लाइंट लाइब्रेरी कैसे स्थापित करें

  4. PostgreSQL क्वेरी इंडेक्स स्कैन के साथ तेजी से चलती है, लेकिन इंजन हैश जॉइन चुनता है

  5. दोहरी तालिका को संदर्भित किए बिना Oracle में कुछ भी नहीं चुनें?