All Products
Search
Document Center

PolarDB:.NET

Last Updated:May 16, 2026

Topik ini menjelaskan cara menggunakan driver PolarDB .NET dalam aplikasi C# untuk menghubungkan ke database .

Prasyarat

  • Anda telah membuat akun database di kluster PolarDB. Untuk informasi selengkapnya, lihat Create a database account.

  • Alamat IP host yang perlu mengakses kluster PolarDB telah ditambahkan ke daftar putih. Untuk informasi selengkapnya, lihat Set a cluster whitelist.

Informasi latar belakang

PolarDB .NET, juga dikenal sebagai ADO.NET Data Provider for PolarDB, adalah driver untuk mengakses PolarDB menggunakan bahasa seperti C#, Visual Basic, dan F#. Driver ini kompatibel dengan Entity Framework Core dan Entity Framework 6.x, sehingga dapat mempercepat pengembangan aplikasi saat digunakan bersama Entity Framework.

Driver ini menggunakan protokol PostgreSQL versi 3.0 dan kompatibel dengan .NET Framework 2.0, .NET Framework 4.0, .NET Framework 4.5, serta .NET Core 2.0.

Pada versi sebelumnya driver PolarDB .NET, banyak nama kelas diawali dengan POLARDB. Awalan tersebut kini telah diubah menjadi PolarDB. Anda perlu memperbarui kode dengan mengganti awalan lama tersebut. Logika driver tetap tidak berubah, sehingga peningkatan dapat dilakukan dengan percaya diri.

Entity Framework

Penggunaan Entity Framework dan Language-Integrated Query (LINQ) dapat secara signifikan mempercepat pengembangan aplikasi backend C#.

Driver PolarDB .NET menyediakan file .dll untuk EF5 dan EF6 guna digunakan bersama Entity Framework.

Untuk informasi lebih lanjut tentang Entity Framework, kunjungi situs resmi Entity Framework.

Instal driver .NET

  1. Unduh driver .NET.

  2. Ekstrak paket driver .NET.

    unzip polardb_oracle_.net.zip
  3. Impor driver ke dalam proyek Visual Studio Anda.

    1. Di Visual Studio, klik kanan proyek dan pilih Add Reference.

    2. Di kotak dialog Reference Manager, klik Browse.

      Visual Studio-1

    3. Di kotak dialog Select the files to reference, pilih versi driver yang sesuai dan klik Add.

      Visual Studio-2

    4. Klik OK.

Contoh

Direktori Samples berisi file PolarDBSample.sql dan beberapa proyek contoh. Langkah-langkah berikut menunjukkan cara menjalankan proyek contoh tersebut.

  1. Hubungkan ke database. Untuk informasi selengkapnya, lihat Connect to a database cluster.

  2. Jalankan perintah berikut untuk membuat database bernama sampledb.

    CREATE DATABASE sampledb;
  3. Impor skema dan data contoh ke dalam database sampledb.

    \i ${your path}/PolarDBSample.sql
  4. Setelah data diimpor, Anda dapat mulai menulis kode C#.

    Kode contoh berikut menunjukkan cara melakukan kueri, pembaruan, dan pemanggilan prosedur tersimpan.

    using System;
    using System.Data;
    using PolarDB.PolarDBClient;
    /*
     * Kelas ini menunjukkan cara melakukan operasi DML di PolarDB.
     *
     * @revision 1.0
     */
    
    namespace PolarDBClientTest
    {
    
        class SAMPLE_TEST
        {
    
            static void Main(string[] args)
            {
                PolarDBConnection conn = new PolarDBConnection("Server=localhost;Port=5432;User Id=polaruser;Password=password;Database=sampledb");
                try
                {
                    conn.Open();
    
                    // Pernyataan select sederhana menggunakan objek PolarDBCommand
                    PolarDBCommand PolarDBSeletCommand = new PolarDBCommand("SELECT EMPNO,ENAME,JOB,MGR,HIREDATE FROM EMP",conn);
                    PolarDBDataReader SelectResult =  PolarDBSeletCommand.ExecuteReader();
                    while (SelectResult.Read()) 
                    {
                        Console.WriteLine("Emp No" + " " + SelectResult.GetInt32(0));
                        Console.WriteLine("Emp Name" + " " + SelectResult.GetString(1));
                        if (SelectResult.IsDBNull(2) == false)
                            Console.WriteLine("Job" + " " + SelectResult.GetString(2));
                        else
                            Console.WriteLine("Job" + " null ");
                        if (SelectResult.IsDBNull(3) == false)
                            Console.WriteLine("Mgr" + " " + SelectResult.GetInt32(3));
                        else
                            Console.WriteLine("Mgr" + "null");
                        if (SelectResult.IsDBNull(4) == false)
                            Console.WriteLine("Hire Date" + " " + SelectResult.GetDateTime(4));
                        else
                            Console.WriteLine("Hire Date" + " null");
                        Console.WriteLine("---------------------------------");
                    }
    
                    // Menjalankan pernyataan INSERT menggunakan objek PolarDBCommand.
                    SelectResult.Close();
                    PolarDBCommand PolarDBInsertCommand = new PolarDBCommand("INSERT INTO EMP(EMPNO,ENAME) VALUES((SELECT COUNT(EMPNO) FROM EMP),'JACKSON')",conn);
                    PolarDBInsertCommand.ExecuteScalar();
                    Console.WriteLine("Catatan dimasukkan");
    
                    // Memperbarui catatan menggunakan objek PolarDBCommand.
                    PolarDBCommand  PolarDBUpdateCommand = new PolarDBCommand("UPDATE EMP SET ENAME ='DOTNET' WHERE EMPNO < 100",conn);
                    PolarDBUpdateCommand.ExecuteNonQuery();
                    Console.WriteLine("Catatan telah diperbarui");
                    PolarDBCommand PolarDBDeletCommand = new PolarDBCommand("DELETE FROM EMP WHERE EMPNO < 100",conn);
                    PolarDBDeletCommand.CommandType= CommandType.Text;
                    PolarDBDeletCommand.ExecuteScalar();
                    Console.WriteLine("Catatan dihapus");
    
                    // Contoh pemanggilan prosedur
                    try
                    {
                        PolarDBCommand callable_command = new PolarDBCommand("emp_query(:p_deptno,:p_empno,:p_ename,:p_job,:p_hiredate,:p_sal)", conn);
                        callable_command.CommandType = CommandType.StoredProcedure;
                        callable_command.Parameters.Add(new PolarDBParameter("p_deptno",PolarDBTypes.PolarDBDbType.Numeric,10,"p_deptno",ParameterDirection.Input,false ,2,2,System.Data.DataRowVersion.Current,20));
                        callable_command.Parameters.Add(new PolarDBParameter("p_empno", PolarDBTypes.PolarDBDbType.Numeric,10,"p_empno",ParameterDirection.InputOutput,false ,2,2,System.Data.DataRowVersion.Current,7369));
                        callable_command.Parameters.Add(new PolarDBParameter("p_ename", PolarDBTypes.PolarDBDbType.Varchar,10,"p_ename",ParameterDirection.InputOutput,false ,2,2,System.Data.DataRowVersion.Current,"SMITH"));
                        callable_command.Parameters.Add(new PolarDBParameter("p_job", PolarDBTypes.PolarDBDbType.Varchar,10,"p_job",ParameterDirection.Output,false ,2,2,System.Data.DataRowVersion.Current,null));
                        callable_command.Parameters.Add(new PolarDBParameter("p_hiredate", PolarDBTypes.PolarDBDbType.Date,200,"p_hiredate",ParameterDirection.Output,false ,2,2,System.Data.DataRowVersion.Current,null));
                        callable_command.Parameters.Add(new PolarDBParameter("p_sal", PolarDBTypes.PolarDBDbType.Numeric,200,"p_sal",ParameterDirection.Output,false ,2,2,System.Data.DataRowVersion.Current,null));
                        callable_command.Prepare();
                        callable_command.Parameters[0].Value = 20;
                        callable_command.Parameters[1].Value = 7369;
                        PolarDBDataReader result = callable_command.ExecuteReader();
                        int fc = result.FieldCount;
                        for(int i=0;i<fc;i++)
                            Console.WriteLine("RESULT["+i+"]="+ Convert.ToString(callable_command.Parameters[i].Value));
                        result.Close();
                    }
                    // Jika Anda menggunakan driver .NET 2.0, Anda harus memodifikasi bagian ini sesuai kebutuhan.
                    catch(PolarDBException exp)
                    {
                        if(exp.ErrorCode.Equals("01403"))
                            Console.WriteLine("Data tidak ditemukan");
                        else if(exp.ErrorCode.Equals("01422"))
                            Console.WriteLine("Beberapa baris dikembalikan oleh kueri");
                        else
                            Console.WriteLine("Terjadi kesalahan saat memanggil prosedur. \nPenyebab Utama:\n");
                        Console.WriteLine(exp.Message.ToString());
                    }
    
                    // Pernyataan terpersiapkan (prepared statement)
                    string updateQuery  = "update emp set ename = :Name where empno = :ID";
                    PolarDBCommand Prepared_command = new PolarDBCommand(updateQuery, conn);
                    Prepared_command.CommandType = CommandType.Text;
                    Prepared_command.Parameters.Add(new PolarDBParameter("ID", PolarDBTypes.PolarDBDbType.Integer));
                    Prepared_command.Parameters.Add(new PolarDBParameter("Name", PolarDBTypes.PolarDBDbType.Text));
                    Prepared_command.Prepare();
                    Prepared_command.Parameters[0].Value = 7369;
                    Prepared_command.Parameters[1].Value = "Mark";
                    Prepared_command.ExecuteNonQuery();
                    Console.WriteLine("Catatan Diperbarui...");
                }
    
                catch(PolarDBException exp)
                {
                    Console.WriteLine(exp.ToString() );
                }
                finally
                {
                    conn.Close();
                }
    
            }
        }
    }

Parameter string koneksi

Aplikasi menghubungkan ke database dengan menyediakan string koneksi yang mencakup parameter seperti host, username, dan password.

String koneksi menggunakan format keyword1=value; keyword2=value; dan tidak peka huruf besar/kecil. Gunakan tanda kutip ganda ("") untuk membungkus nilai yang mengandung karakter khusus, seperti titik koma.

Tabel berikut menjelaskan parameter string koneksi yang didukung oleh driver ini.

Tabel 1. Parameter koneksi dasar

Parameter

Contoh

Deskripsi

Host

localhost

Titik akhir kluster PolarDB. Untuk informasi selengkapnya tentang cara melihat titik akhir, lihat View or apply for an endpoint.

Port

1521

Port kluster PolarDB. Nilai default-nya adalah 1521.

Database

sampledb

Nama database yang akan dihubungkan.

Username

polaruser

Username untuk kluster PolarDB.

Password

password

Password untuk pengguna yang ditentukan pada kluster PolarDB.

Tabel 2. Parameter kolam koneksi

Parameter

Contoh

Deskripsi

Pooling

true

Menentukan apakah kolam koneksi diaktifkan.

Minimum pool size

0

Jumlah minimum koneksi yang dipertahankan dalam kolam koneksi.

Maximum pool size

100

Jumlah maksimum koneksi yang diizinkan dalam kolam koneksi.

Connection idle lifetime

300

Periode timeout, dalam detik, untuk menutup koneksi yang tidak aktif ketika jumlah koneksi melebihi minimum pool size.

Connection pruning interval

10

Interval, dalam detik, untuk pemangkasan koneksi yang tidak aktif.

Tabel 3. Parameter lainnya

Parameter

Deskripsi

application_name

Nama aplikasi.

search_path

Jalur pencarian skema.

client_encoding

Pengkodean karakter yang digunakan oleh klien.

timezone

Zona waktu untuk sesi saat ini.