Witam, postanowiłem przerzucić się z zapisywania danych w plikach tekstowych na jakieś bardziej cywilizowane metody, zatem postanowiłem, że dobrym pomysłem będzie użyciem SQL Compact Edition.
Przeszukałem trochę internetu i znalazłem proces tworzenia bazy i podpinania jej pod DGV. Wszystko ładnie, pięknie aż dochodzi do edycji.
Pierwszym problemem było dodawanie rekordów bezpośrednio w DGV - poradziłem sobie z tym tworząc obiekt CommandBuilder'a i myślałem, że teraz to już będzie działać. Niestety przeliczyłem się :)
Edycja rekordów powoduje wyrzucenie błędu:
Dynamiczne generowanie kodu SQL dla elementu UpdateCommand nie jest obsługiwane dla elementu SelectCommand, który nie zwraca żadnych informacji o kolumnie klucza. Podobna rzecz dzieje się po usunięciu rekordów.
Miał ktoś taki problem? Nie mam już siły, a cały dzień męczę się z tym.
public partial class Form1 : Form
{
public string conString = Properties.Settings.Default.testConnectionString;
SqlCeConnection con;
SqlCeDataAdapter a;
DataSet ds;
SqlCeCommandBuilder builder;
public Form1()
{
InitializeComponent();
try
{
con = new SqlCeConnection(conString);
con.Open();
a = new SqlCeDataAdapter("SELECT * FROM friends", con);
builder = new SqlCeCommandBuilder(a);
ds = new DataSet();
a.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
catch (SqlCeException e) { MessageBox.Show(e.ToString()); }
}
private void button1_Click(object sender, EventArgs e)
{
a.Update(ds);
}
Oto fragment tego kodu.