Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aktivitas akses database memungkinkan Anda mengakses database dalam alur kerja. Aktivitas ini memungkinkan mengakses database untuk mengambil atau memodifikasi informasi dan menggunakan ADO.NET untuk mengakses database.
Aktivitas database
Bagian berikut merinci daftar aktivitas yang disertakan dalam sampel Aktivitas Db.
DbUpdate
Menjalankan kueri SQL yang menghasilkan modifikasi dalam database (menyisipkan, memperbarui, menghapus, dan modifikasi lainnya).
Kelas ini melakukan pekerjaannya secara asinkron (berasal dari AsyncCodeActivity dan menggunakan kemampuan asinkronnya).
Informasi koneksi dapat dikonfigurasi dengan mengatur nama invarian penyedia (ProviderName) dan string koneksi (ConnectionString) atau hanya menggunakan nama konfigurasi string koneksi (ConfigFileSectionName) dari file konfigurasi aplikasi.
Penting
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Jika Anda menyambungkan ke Azure SQL, Identitas Terkelola untuk sumber daya Azure adalah metode autentikasi yang direkomendasikan.
Kueri yang akan dieksekusi dikonfigurasikan di properti Sql dan parameternya diteruskan melalui koleksi Parameters.
Setelah DbUpdate dijalankan, jumlah rekaman yang terpengaruh dikembalikan dalam properti AffectedRecords.
Public class DbUpdate: AsyncCodeActivity
{
[RequiredArgument]
[OverloadGroup("ConnectionString")]
[DefaultValue(null)]
public InArgument<string> ProviderName { get; set; }
[RequiredArgument]
[OverloadGroup("ConnectionString")]
[DependsOn("ProviderName")]
[DefaultValue(null)]
public InArgument<string> ConnectionString { get; set; }
[RequiredArgument]
[OverloadGroup("ConfigFileSectionName")]
[DefaultValue(null)]
public InArgument<string> ConfigName { get; set; }
[DefaultValue(null)]
public CommandType CommandType { get; set; }
[RequiredArgument]
public InArgument<string> Sql { get; set; }
[DependsOn("Sql")]
[DefaultValue(null)]
public IDictionary<string, Argument> Parameters { get; }
[DependsOn("Parameters")]
public OutArgument<int> AffectedRecords { get; set; }
}
| Argumen | Deskripsi |
|---|---|
| Nama Penyedia | ADO.NET nama invarian penyedia. Jika argumen ini diatur, maka ConnectionString juga harus diatur. |
| ConnectionString | String koneksi untuk terhubung ke database. Jika argumen ini diatur, maka ProviderName juga harus diatur. |
| ConfigName | Nama bagian file konfigurasi tempat informasi koneksi disimpan. Ketika argumen ini diatur ProviderName dan ConnectionString tidak diperlukan. |
| Jenis Perintah | Jenis DbCommand yang akan dieksekusi. |
| SQL | Perintah SQL yang akan dijalankan. |
| Parameter | Kumpulan parameter kueri SQL. |
| Catatan Terdampak | Jumlah rekaman yang dipengaruhi oleh operasi terakhir. |
Penting
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Jika Anda menyambungkan ke Azure SQL, Identitas Terkelola untuk sumber daya Azure adalah metode autentikasi yang direkomendasikan.
DbQueryScalar
Menjalankan kueri yang mengambil satu nilai dari database.
Kelas ini melakukan pekerjaannya secara asinkron (berasal dari AsyncCodeActivity<TResult> dan menggunakan kemampuan asinkronnya).
Informasi koneksi dapat dikonfigurasi dengan mengatur nama invarian penyedia (ProviderName) dan string koneksi (ConnectionString) atau hanya menggunakan nama konfigurasi string koneksi (ConfigFileSectionName) dari file konfigurasi aplikasi.
Penting
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Jika Anda menyambungkan ke Azure SQL, Identitas Terkelola untuk sumber daya Azure adalah metode autentikasi yang direkomendasikan.
Kueri yang akan dieksekusi dikonfigurasikan di properti Sql dan parameternya diteruskan melalui koleksi Parameters.
Setelah DbQueryScalar dijalankan, skalar dikembalikan dalam argumen Result out (jenis TResult, yang didefinisikan di kelas dasar AsyncCodeActivity<TResult>).
public class DbQueryScalar<TResult> : AsyncCodeActivity<TResult>
{
// public arguments
[RequiredArgument]
[OverloadGroup("ConnectionString")]
[DefaultValue(null)]
public InArgument<string> ProviderName { get; set; }
[RequiredArgument]
[OverloadGroup("ConnectionString")]
[DependsOn("ProviderName")]
[DefaultValue(null)]
public InArgument<string> ConnectionString { get; set; }
[RequiredArgument]
[OverloadGroup("ConfigFileSectionName")]
[DefaultValue(null)]
public InArgument<string> ConfigName { get; set; }
[DefaultValue(null)]
public CommandType CommandType { get; set; }
[RequiredArgument]
public InArgument<string> Sql { get; set; }
[DependsOn("Sql")]
[DefaultValue(null)]
public IDictionary<string, Argument> Parameters { get; }
}
| Argumen | Deskripsi |
|---|---|
| Nama Penyedia | ADO.NET nama invarian penyedia. Jika argumen ini diatur, maka ConnectionString juga harus diatur. |
| ConnectionString | String koneksi untuk terhubung ke database. Jika argumen ini diatur, maka ProviderName juga harus diatur. |
| Jenis Perintah | Jenis DbCommand yang akan dieksekusi. |
| NamaKonfigurasi | Nama bagian file konfigurasi tempat informasi koneksi disimpan. Ketika argumen ini diatur ProviderName dan ConnectionString tidak diperlukan. |
| SQL | Perintah SQL yang akan dijalankan. |
| Parameter | Kumpulan parameter kueri SQL. |
| Hasil | Skalar yang diperoleh setelah kueri dijalankan. Argumen ini berjenis TResult. |
Penting
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Jika Anda menyambungkan ke Azure SQL, Identitas Terkelola untuk sumber daya Azure adalah metode autentikasi yang direkomendasikan.
DbQuery
Menjalankan kueri yang mengambil daftar objek. Setelah kueri dijalankan, fungsi pemetaan dijalankan (dapat berupa Func<TResult><DbDataReader, TResult> atau ActivityFunc<TResult><DbDataReader, TResult>). Fungsi pemetaan ini mendapatkan rekaman dalam DbDataReader dan memetakannya ke objek yang akan dikembalikan.
Informasi koneksi dapat dikonfigurasi dengan mengatur nama invarian penyedia (ProviderName) dan string koneksi (ConnectionString) atau hanya menggunakan nama konfigurasi string koneksi (ConfigFileSectionName) dari file konfigurasi aplikasi.
Penting
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Jika Anda menyambungkan ke Azure SQL, Identitas Terkelola untuk sumber daya Azure adalah metode autentikasi yang direkomendasikan.
Kueri yang akan dieksekusi dikonfigurasikan di properti Sql dan parameternya diteruskan melalui koleksi Parameters.
Hasil kueri SQL diambil menggunakan DbDataReader. Aktivitas berulang melalui DbDataReader dan memetakan baris di DbDataReader ke instans TResult. Pengguna DbQuery harus memberikan kode pemetaan dan ini dapat dilakukan dengan dua cara: menggunakan Func<TResult><DbDataReader, TResult>, atau ActivityFunc<TResult><DbDataReader, TResult>. Dalam kasus pertama, peta dilakukan dalam satu pulsa eksekusi. Oleh karena itu, ini lebih cepat, tetapi ini tidak dapat diserialisasikan ke XAML. Dalam kasus terakhir, peta dilakukan dalam beberapa pulsa. Oleh karena itu, mungkin lebih lambat tetapi dapat diserialisasikan ke XAML dan ditulis secara deklaratif (aktivitas yang ada dapat berpartisipasi dalam pemetaan).
public class DbQuery<TResult> : AsyncCodeActivity<IList<TResult>> where TResult : class
{
// public arguments
[RequiredArgument]
[OverloadGroup("ConnectionString")]
[DefaultValue(null)]
public InArgument<string> ProviderName { get; set; }
[RequiredArgument]
[OverloadGroup("ConnectionString")]
[DependsOn("ProviderName")]
[DefaultValue(null)]
public InArgument<string> ConnectionString { get; set; }
[RequiredArgument]
[OverloadGroup("ConfigFileSectionName")]
[DefaultValue(null)]
public InArgument<string> ConfigName { get; set; }
[DefaultValue(null)]
public CommandType CommandType { get; set; }
[RequiredArgument]
public InArgument<string> Sql { get; set; }
[DependsOn("Sql")]
[DefaultValue(null)]
public IDictionary<string, Argument> Parameters { get; }
[OverloadGroup("DirectMapping")]
[DefaultValue(null)]
public Func<DbDataReader, TResult> Mapper { get; set; }
[OverloadGroup("MultiplePulseMapping")]
[DefaultValue(null)]
public ActivityFunc<DbDataReader, TResult> MapperFunc { get; set; }
}
| Argumen | Deskripsi |
|---|---|
| Nama Penyedia | ADO.NET nama invarian penyedia. Jika argumen ini diatur, maka ConnectionString juga harus diatur. |
| ConnectionString | String koneksi untuk terhubung ke database. Jika argumen ini diatur, maka ProviderName juga harus diatur. |
| Jenis Perintah | Jenis DbCommand yang akan dieksekusi. |
| ConfigName | Nama bagian file konfigurasi tempat informasi koneksi disimpan. Ketika argumen ini diatur ProviderName dan ConnectionString tidak diperlukan. |
| SQL | Perintah SQL yang akan dijalankan. |
| Parameter | Kumpulan parameter kueri SQL. |
| Pemeta | Fungsi pemetaan (Func<TResult><DbDataReader, TResult>) yang mengambil rekaman dalam DataReader yang diperoleh sebagai hasil dari menjalankan kueri dan mengembalikan instans objek jenis TResult untuk ditambahkan ke Result koleksi.Dalam hal ini, pemetaan dilakukan dalam satu pulsa eksekusi, tetapi tidak dapat ditulis secara deklaratif menggunakan perancang. |
| MapperFunc | Fungsi pemetaan (ActivityFunc<TResult><DbDataReader, TResult>) yang mengambil rekaman dalam DataReader yang diperoleh sebagai hasil dari menjalankan kueri dan mengembalikan instans objek jenis TResult untuk ditambahkan ke Result koleksi.Dalam hal ini, pemetaan dilakukan dalam beberapa pulsa eksekusi. Fungsi ini dapat diserialisasikan ke XAML dan ditulis secara deklaratif (aktivitas apa pun yang ada dapat berpartisipasi dalam pemetaan). |
| Hasil | Daftar objek yang diperoleh sebagai hasil dari menjalankan kueri dan menjalankan fungsi pemetaan untuk setiap rekaman di DataReader. |
Penting
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Jika Anda menyambungkan ke Azure SQL, Identitas Terkelola untuk sumber daya Azure adalah metode autentikasi yang direkomendasikan.
DbQueryDataSet
Menjalankan kueri yang mengembalikan DataSet. Kelas ini melakukan pekerjaannya secara asinkron. Ini berasal dari AsyncCodeActivity<TResult> dan menggunakan kemampuan asinkronnya.
Informasi koneksi dapat dikonfigurasi dengan mengatur nama invarian penyedia (ProviderName) dan string koneksi (ConnectionString) atau hanya menggunakan nama konfigurasi string koneksi (ConfigFileSectionName) dari file konfigurasi aplikasi.
Penting
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Jika Anda menyambungkan ke Azure SQL, Identitas Terkelola untuk sumber daya Azure adalah metode autentikasi yang direkomendasikan.
Kueri yang akan dieksekusi dikonfigurasikan di properti Sql dan parameternya diteruskan melalui koleksi Parameters.
Setelah DbQueryDataSet dieksekusi, DataSet dikembalikan dalam argumen Result out (dari jenis TResult, yang didefinisikan di kelas dasar AsyncCodeActivity<TResult>).
public class DbQueryDataSet : AsyncCodeActivity<DataSet>
{
// public arguments
[RequiredArgument]
[OverloadGroup("ConnectionString")]
[DefaultValue(null)]
public InArgument<string> ProviderName { get; set; }
[RequiredArgument]
[OverloadGroup("ConnectionString")]
[DependsOn("ProviderName")]
[DefaultValue(null)]
public InArgument<string> ConnectionString { get; set; }
[RequiredArgument]
[OverloadGroup("ConfigFileSectionName")]
[DefaultValue(null)]
public InArgument<string> ConfigName { get; set; }
[DefaultValue(null)]
public CommandType CommandType { get; set; }
[RequiredArgument]
public InArgument<string> Sql { get; set; }
[DependsOn("Sql")]
[DefaultValue(null)]
public IDictionary<string, Argument> Parameters { get; }
}
| Argumen | Deskripsi |
|---|---|
| Nama Penyedia | ADO.NET nama invarian penyedia. Jika argumen ini diatur, maka ConnectionString juga harus diatur. |
| ConnectionString | String koneksi untuk terhubung ke database. Jika argumen ini diatur, maka ProviderName juga harus diatur. |
| NamaKonfigurasi | Nama bagian file konfigurasi tempat informasi koneksi disimpan. Ketika argumen ini diatur ProviderName dan ConnectionString tidak diperlukan. |
| Jenis Perintah | Jenis DbCommand yang akan dieksekusi. |
| SQL | Perintah SQL yang akan dijalankan. |
| Parameter | Kumpulan parameter kueri SQL. |
| Hasil | DataSet yang diperoleh setelah kueri dijalankan. |
Penting
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Jika Anda menyambungkan ke Azure SQL, Identitas Terkelola untuk sumber daya Azure adalah metode autentikasi yang direkomendasikan.
Mengonfigurasi informasi koneksi
Semua DbActivities memiliki parameter konfigurasi yang sama. DbActivities dapat dikonfigurasi dengan dua cara:
ConnectionString + InvariantName: Mengatur nama invarian penyedia ADO.NET dan string koneksi.Activity dbSelectCount = new DbQueryScalar<DateTime>() { ProviderName = "System.Data.SqlClient", ConnectionString = @"Data Source=.\SQLExpress; Initial Catalog=DbActivitiesSample; Integrated Security=True", Sql = "SELECT GetDate()" };ConfigName: Mengatur nama bagian konfigurasi yang berisi informasi koneksi.<connectionStrings> <add name="DbActivitiesSample" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLExpress;Initial Catalog=DbActivitiesSample;Integrated Security=true"/> </connectionStrings>Dalam aktivitas:
Activity dbSelectCount = new DbQueryScalar<int>() { ConfigName = "DbActivitiesSample", Sql = "SELECT COUNT(*) FROM Roles" };
Penting
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Jika Anda menyambungkan ke Azure SQL, Identitas Terkelola untuk sumber daya Azure adalah metode autentikasi yang direkomendasikan.
Jalankan sampel ini
Petunjuk penyiapan
Sampel ini menggunakan database. Skrip penyiapan dan pemuatan (Setup.cmd) disediakan dengan sampel. Anda harus menjalankan file tersebut menggunakan perintah.
Skrip Setup.cmd memanggil file skrip CreateDb.sql, yang berisi perintah SQL yang melakukan hal berikut:
- Membuat database yang disebut DbActivitiesSample.
- Membuat tabel Peran.
- Membuat tabel Karyawan.
- Menyisipkan tiga rekaman ke dalam tabel Peran.
- Menyisipkan dua belas rekaman ke dalam tabel Karyawan.
Untuk menjalankan Setup.cmd
Buka prompt perintah.
Buka folder sampel DbActivities.
Ketik "setup.cmd" dan tekan Enter.
Catatan
Setup.cmd mencoba menginstal sampel di instans SqlExpress komputer lokal Anda. Jika Anda ingin menginstalnya di instans server SQL lainnya, edit Setup.cmd dengan nama instans baru.
Untuk menjalankan sampel
- Buka solusi di Visual Studio.
- Untuk mengkompilasi solusi, tekan Ctrl+Shift+B.
- Untuk menjalankan sampel tanpa penelusuran kesalahan, tekan Ctrl+F5.
Untuk menghapus instalasi database sampel, jalankan Cleanup.cmd dari folder sampel di prompt perintah.
Penting
Sampel mungkin sudah diinstal pada komputer Anda. Periksa direktori (default) berikut sebelum melanjutkan.
<InstallDrive>:\WF_WCF_Samples
Jika direktori ini tidak ada, buka sampel Windows Communication Foundation (WCF) dan Windows Workflow Foundation (WF) untuk .NET Framework 4 untuk mengunduh semua sampel Windows Communication Foundation (WCF) dan WF. Sampel ini terletak di direktori berikut.
<InstallDrive>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\DbActivities