DataGridView.DataSource Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
verilerinin görüntülendiği DataGridView veri kaynağını alır veya ayarlar.
public:
property System::Object ^ DataSource { System::Object ^ get(); void set(System::Object ^ value); };
public object DataSource { get; set; }
public object? DataSource { get; set; }
member this.DataSource : obj with get, set
Public Property DataSource As Object
Özellik Değeri
görüntülenecek verileri DataGridView içeren nesne.
Özel durumlar
Veri kaynağında bir hata oluştu ve olay için DataError işleyici yok veya işleyici özelliğini olarak true
ayarlamışThrowException. Özel durum nesnesi genellikle türüne FormatExceptionyayınlanabilir.
Örnekler
Aşağıdaki kod örneği, basit bir veriye bağlı DataGridViewbaşlatmayı gösterir. Ayrıca özelliğin nasıl ayarlanacağı DataSource da gösterilir.
#using <System.Transactions.dll>
#using <System.EnterpriseServices.dll>
#using <System.Xml.dll>
#using <System.Drawing.dll>
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Data.dll>
using namespace System;
using namespace System::Data;
using namespace System::Data::SqlClient;
using namespace System::Windows::Forms;
using namespace System::Drawing;
public ref class Form1: public System::Windows::Forms::Form
{
public:
Form1()
: Form()
{
//This call is required by the Windows Form Designer.
InitializeComponent();
InitializeDataGridView();
//Add any initialization after the InitializeComponent() call
}
protected:
~Form1()
{
if ( components != nullptr )
{
delete components;
}
}
private:
System::Windows::Forms::DataGridView ^ dataGridView1;
System::Windows::Forms::BindingSource ^ bindingSource1;
//Required by the Windows Form Designer
System::ComponentModel::IContainer^ components;
//NOTE: The following procedure is required by the Windows Form Designer
//It can be modified using the Windows Form Designer.
//Do not modify it using the code editor.
[System::Diagnostics::DebuggerNonUserCode]
void InitializeComponent()
{
this->dataGridView1 = gcnew System::Windows::Forms::DataGridView;
this->bindingSource1 = gcnew System::Windows::Forms::BindingSource;
this->SuspendLayout();
//
//DataGridView1
//
this->dataGridView1->Location = System::Drawing::Point( 96, 71 );
this->dataGridView1->Name = "DataGridView1";
this->dataGridView1->Size = System::Drawing::Size( 321, 286 );
this->dataGridView1->TabIndex = 0;
//
//Form1
//
this->ClientSize = System::Drawing::Size( 518, 413 );
this->Controls->Add( this->dataGridView1 );
this->Name = "Form1";
this->Text = "Form1";
this->ResumeLayout( false );
}
internal:
static property Form1^ GetInstance
{
Form1^ get()
{
if ( m_DefaultInstance == nullptr || m_DefaultInstance->IsDisposed )
{
System::Threading::Monitor::Enter( m_SyncObject );
try
{
if ( m_DefaultInstance == nullptr || m_DefaultInstance->IsDisposed )
{
m_DefaultInstance = gcnew Form1;
}
}
finally
{
System::Threading::Monitor::Exit( m_SyncObject );
}
}
return m_DefaultInstance;
}
}
private:
static Form1^ m_DefaultInstance;
static Object^ m_SyncObject = gcnew Object;
void InitializeDataGridView()
{
try
{
// Set up the DataGridView.
dataGridView1->Dock = DockStyle::Fill;
// Automatically generate the DataGridView columns.
dataGridView1->AutoGenerateColumns = true;
// Set up the data source.
bindingSource1->DataSource = GetData( "Select * From Products" );
dataGridView1->DataSource = bindingSource1;
// Automatically resize the visible rows.
dataGridView1->AutoSizeRowsMode = DataGridViewAutoSizeRowsMode::DisplayedCellsExceptHeaders;
// Set the DataGridView control's border.
dataGridView1->BorderStyle = BorderStyle::Fixed3D;
// Put the cells in edit mode when user enters them.
dataGridView1->EditMode = DataGridViewEditMode::EditOnEnter;
}
catch ( SqlException^ )
{
MessageBox::Show( "To run this sample replace connection.ConnectionString"
" with a valid connection string to a Northwind"
" database accessible to your system.", "ERROR", MessageBoxButtons::OK, MessageBoxIcon::Exclamation );
System::Threading::Thread::CurrentThread->Abort();
}
catch ( System::Exception^ ex )
{
MessageBox::Show( ex->ToString() );
}
}
DataTable^ GetData( String^ sqlCommand )
{
String^ connectionString = "Integrated Security=SSPI;Persist Security Info=False;"
"Initial Catalog=Northwind;Data Source= localhost";
SqlConnection^ northwindConnection = gcnew SqlConnection( connectionString );
SqlCommand^ command = gcnew SqlCommand( sqlCommand,northwindConnection );
SqlDataAdapter^ adapter = gcnew SqlDataAdapter;
adapter->SelectCommand = command;
DataTable^ table = gcnew DataTable;
adapter->Fill( table );
return table;
}
};
int main()
{
Application::Run( gcnew Form1 );
}
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Drawing;
public class Form1 : System.Windows.Forms.Form
{
private DataGridView dataGridView1 = new DataGridView();
private BindingSource bindingSource1 = new BindingSource();
public Form1()
{
dataGridView1.Dock = DockStyle.Fill;
this.Controls.Add(dataGridView1);
InitializeDataGridView();
}
private void InitializeDataGridView()
{
try
{
// Set up the DataGridView.
dataGridView1.Dock = DockStyle.Fill;
// Automatically generate the DataGridView columns.
dataGridView1.AutoGenerateColumns = true;
// Set up the data source.
bindingSource1.DataSource = GetData("Select * From Products");
dataGridView1.DataSource = bindingSource1;
// Automatically resize the visible rows.
dataGridView1.AutoSizeRowsMode =
DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
// Set the DataGridView control's border.
dataGridView1.BorderStyle = BorderStyle.Fixed3D;
// Put the cells in edit mode when user enters them.
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
}
catch (SqlException)
{
MessageBox.Show("To run this sample replace connection.ConnectionString" +
" with a valid connection string to a Northwind" +
" database accessible to your system.", "ERROR",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
System.Threading.Thread.CurrentThread.Abort();
}
}
private static DataTable GetData(string sqlCommand)
{
string connectionString = "Integrated Security=SSPI;" +
"Persist Security Info=False;" +
"Initial Catalog=Northwind;Data Source=localhost";
SqlConnection northwindConnection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand(sqlCommand, northwindConnection);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.Fill(table);
return table;
}
[STAThreadAttribute()]
public static void Main()
{
Application.Run(new Form1());
}
}
Imports System.Data
Imports System.Data.SqlClient
Imports System.Windows.Forms
Imports System.Drawing
Public Class Form1
Inherits System.Windows.Forms.Form
Private WithEvents dataGridView1 As New DataGridView()
Private bindingSource1 As New BindingSource()
Public Sub New()
Me.dataGridView1.Dock = DockStyle.Fill
Me.Controls.Add(Me.dataGridView1)
InitializeDataGridView()
End Sub
Private Sub InitializeDataGridView()
Try
' Set up the DataGridView.
With Me.dataGridView1
' Automatically generate the DataGridView columns.
.AutoGenerateColumns = True
' Set up the data source.
bindingSource1.DataSource = GetData("Select * From Products")
.DataSource = bindingSource1
' Automatically resize the visible rows.
.AutoSizeRowsMode = _
DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
' Set the DataGridView control's border.
.BorderStyle = BorderStyle.Fixed3D
' Put the cells in edit mode when user enters them.
.EditMode = DataGridViewEditMode.EditOnEnter
End With
Catch ex As SqlException
MessageBox.Show("To run this sample replace " _
& "connection.ConnectionString with a valid connection string" _
& " to a Northwind database accessible to your system.", _
"ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
System.Threading.Thread.CurrentThread.Abort()
End Try
End Sub
Private Shared Function GetData(ByVal sqlCommand As String) _
As DataTable
Dim connectionString As String = _
"Integrated Security=SSPI;Persist Security Info=False;" _
& "Initial Catalog=Northwind;Data Source=localhost"
Dim northwindConnection As SqlConnection = _
New SqlConnection(connectionString)
Dim command As New SqlCommand(sqlCommand, northwindConnection)
Dim adapter As SqlDataAdapter = New SqlDataAdapter()
adapter.SelectCommand = command
Dim table As New DataTable
table.Locale = System.Globalization.CultureInfo.InvariantCulture
adapter.Fill(table)
Return table
End Function
<STAThreadAttribute()> _
Public Shared Sub Main()
Application.Run(New Form1)
End Sub
End Class
Açıklamalar
sınıfı standart DataGridView Windows Forms veri bağlama modelini destekler. Bu, veri kaynağının aşağıdaki arabirimlerden birini uygulayan herhangi bir türde olabileceği anlamına gelir:
Tek IList boyutlu diziler de dahil olmak üzere arabirimi.
IListSource ve DataSet sınıfları gibi DataTable arabirim.
IBindingList Sınıfı gibi BindingList<T> arabirim.
IBindingListView Sınıfı gibi BindingSource arabirim.
Belirli örnekler için, bu bölümün sonundaki Örnek bölümüne ve görev tablosuna bakın.
Genellikle bir bileşene bağlanır ve bileşeni başka bir BindingSource veri kaynağına bağlar BindingSource veya iş nesneleriyle doldurursunuz. Bileşen BindingSource , çok çeşitli veri kaynaklarına bağlanabileceğinden ve birçok veri bağlama sorununu otomatik olarak çözebileceğinden tercih edilen veri kaynağıdır.
Birden çok liste veya tablo içeren bir veri kaynağına bağlanırken, özelliğini bağlanacak listeyi veya tabloyu belirten bir dizeye ayarlamanız DataMember gerekir. Ancak, birden çok liste veya tablo içeren bir BindingSource bileşene bağlanırken, bunun yerine bileşenin BindingSource özelliğini ayarlayabilirsinizDataMember.
Veritabanı verileri yerine bir nesne koleksiyonuna bağlanırken, genellikle veritabanı verileri için uygun olan varsayılan değerini kullanmak yerine özelliği tarafından DefaultCellStyle döndürülen nesnenin DBNull.Valueözelliğini null
olarak ayarlarsınızDataSourceNullValue.
Daha fazla bilgi için bkz. Windows Forms DataGridView Denetiminde Verileri Görüntüleme. Aşağıdaki tabloda özelliğiyle ilgili DataSource ortak görevlere doğrudan bağlantılar sağlanmaktadır.
Bkz. İzlenecek Yol: İki Windows Forms DataGridView Denetimi Kullanarak Ana/Ayrıntı Formu Oluşturma ve Nasıl yapılır: Nesneleri DataGridView Denetimlerini Windows Forms Bağlama.