Cara: Menangani Kesalahan yang Terjadi Selama Entri Data di Formulir Windows Kontrol DataGridView
Contoh kode berikut menunjukkan cara menggunakan DataGridView kontrol untuk melaporkan kesalahan entri data kepada pengguna.
Untuk penjelasan lengkap tentang contoh kode ini, lihat Panduan: Menangani Kesalahan yang Terjadi Selama Entri Data di Formulir Windows Kontrol DataGridView.
Contoh
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
public class Form1 : System.Windows.Forms.Form
{
private DataGridView dataGridView1 = new DataGridView();
private BindingSource bindingSource1 = new BindingSource();
public Form1()
{
// Initialize the form.
this.dataGridView1.Dock = DockStyle.Fill;
this.Controls.Add(dataGridView1);
this.Load += new EventHandler(Form1_Load);
}
private void Form1_Load(System.Object sender, System.EventArgs e)
{
// Attach the DataError event to the corresponding event handler.
this.dataGridView1.DataError +=
new DataGridViewDataErrorEventHandler(dataGridView1_DataError);
// Initialize the BindingSource and bind the DataGridView to it.
bindingSource1.DataSource = GetData("select * from Customers");
this.dataGridView1.DataSource = bindingSource1;
this.dataGridView1.AutoResizeColumns(
DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
}
private void dataGridView1_DataError(object sender,
DataGridViewDataErrorEventArgs e)
{
// If the data source raises an exception when a cell value is
// commited, display an error message.
if (e.Exception != null &&
e.Context == DataGridViewDataErrorContexts.Commit)
{
MessageBox.Show("CustomerID value must be unique.");
}
}
private static DataTable GetData(string selectCommand)
{
string connectionString =
"Integrated Security=SSPI;Persist Security Info=False;" +
"Initial Catalog=Northwind;Data Source=localhost;Packet Size=4096";
// Connect to the database and fill a data table, including the
// schema information that contains the CustomerID column
// constraint.
SqlDataAdapter adapter =
new SqlDataAdapter(selectCommand, connectionString);
DataTable data = new DataTable();
data.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.Fill(data);
adapter.FillSchema(data, SchemaType.Source);
return data;
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
Imports System.Data
Imports System.Data.SqlClient
Imports System.Windows.Forms
Public Class Form1
Inherits System.Windows.Forms.Form
Private WithEvents dataGridView1 As New DataGridView()
Private bindingSource1 As New BindingSource()
Public Sub New()
' Initialize the form.
Me.dataGridView1.Dock = DockStyle.Fill
Me.Controls.Add(dataGridView1)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Me.Load
' Initialize the BindingSource and bind the DataGridView to it.
bindingSource1.DataSource = GetData("select * from Customers")
Me.dataGridView1.DataSource = bindingSource1
Me.dataGridView1.AutoResizeColumns( _
DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader)
End Sub
Private Sub dataGridView1_DataError(ByVal sender As Object, _
ByVal e As DataGridViewDataErrorEventArgs) _
Handles dataGridView1.DataError
' If the data source raises an exception when a cell value is
' commited, display an error message.
If e.Exception IsNot Nothing AndAlso _
e.Context = DataGridViewDataErrorContexts.Commit Then
MessageBox.Show("CustomerID value must be unique.")
End If
End Sub
Private Shared Function GetData(ByVal selectCommand As String) As DataTable
Dim connectionString As String = _
"Integrated Security=SSPI;Persist Security Info=False;" + _
"Initial Catalog=Northwind;Data Source=localhost;Packet Size=4096"
' Connect to the database and fill a data table, including the
' schema information that contains the CustomerID column
' constraint.
Dim adapter As New SqlDataAdapter(selectCommand, connectionString)
Dim data As New DataTable()
data.Locale = System.Globalization.CultureInfo.InvariantCulture
adapter.Fill(data)
adapter.FillSchema(data, SchemaType.Source)
Return data
End Function
<STAThread()> _
Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New Form1())
End Sub
End Class
Mengompilasi Kode
Contoh ini membutuhkan:
- Referensi ke rakitan System, System.Data, System.Windows.Forms, dan System.XML.
Keamanan .NET Framework
Menyimpan informasi sensitif, seperti kata sandi, dalam string koneksi dapat memengaruhi keamanan aplikasi Anda. Menggunakan Autentikasi Windows (juga dikenal sebagai keamanan terintegrasi) adalah cara yang lebih aman untuk mengontrol akses ke database. Untuk informasi lebih lengkap, lihat Melindungi Informasi Koneksi.
Baca juga
.NET Desktop feedback
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk