Witam,
jakiś czas temu zacząłem się interesować C# i technologią .NET, i dzisiaj postanowiłem poruszyć temat aplikacji opartej na bazie danych.
Za pomocą jakiegoś przykładu znalezionego w sieci, oraz innych informacji z różnych stron powstało takie "coś": (kod ma trochę moich wstaw - komentarzy do własnego użytku)
namespace DBadoWFormManual
{
public partial class Form1 : Form
{
//specify the ConnectionString property
public string conString= @"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source=..\\..\\PersonDatabase.mdb";
public OleDbConnection con;
public OleDbDataAdapter dAdapter;
public DataSet dSet;
public Form1()
{
InitializeComponent();
//Initializes a new instance of the OleDbConnection
con = new OleDbConnection(conString);
// open the database connection with the property settings
// specified by the ConnectionString "conString"
con.Open();
dAdapter = new OleDbDataAdapter("SELECT * FROM PersonTable", con);
//można też było tak:
//dAdapter.SelectCommand = new SqlCommant("SELECT * FROM PersonTable",con);
dSet = new DataSet();
dAdapter.Fill(dSet, "PersonTable"); //bez "PersonTable" też przejdzie
con.Close();
//---Bind Data to the Windows Forms DataGridView Control---
// this.dataGrid1.DataSource = dSet; //to działa! ale trzeba samemu rozwinąć tabele
this.dataGrid1.DataSource = dSet.Tables["PersonTable"];
//this.dataGridView1.DataSource = dSet; // to nie działa!
this.dataGridView1.DataSource = dSet.Tables["PersonTable"];
//jednak brak aktualizacji do bazy przy edycji danych na DataGrid
}
}
}
Z tego co doczytałem kontrolka DataGrid jest już zastąpiona DataGridView.. (ale ja wzorowałem się na przykładzie).
Przykład ten jest prosty, jednak zrobienie go zajęło mi ponad 2h :|
Chciałbym go dalej powoli rozwijać, i mam problem ze zrobieniem takiego mechanizmu, że jak edytuje dane na DataGrid, to dane te są następnie zapisywane w bazie (na stałe).
Czytałem coś o bindowaniu kontrolek, np. TextBox'a , ale z tego co się doczytałem, to ta linia:
this.dataGridView1.DataSource = dSet.Tables["PersonTable"]; zapewnia już bindowanie..?
EDIT:
Udało się zrobić aktualizacje za pomocą DataGrid. Jak się okazało przyczyna nie leżała po stronie kodu, a bazy danych która nie posiadała klucza głównego (o czym wcześniej nie wiedziałem / nie pomyślałem) gdyż tą bazę sam nie projektowałem (tylko pobrałem z sieci).