Witajcie,
problem następujący, chciałbym edytować MS SQLową bazę danych za pomocą programu w C#. Wszystko idzie świetnie, jednak gdy napotykam na kombinację DataGridView i puste wartości, jest to dla mnie mur nie do przejścia.
Pokrótce:
private void Form1_Load(object sender, EventArgs e)
{
dbc = new SqlConnection("user id=" + Settings.Default["dbUser"].ToString() + ";password=" + Settings.Default["dbPasswd"].ToString() + ";server=" + Settings.Default["dbSerwer"].ToString() + ";database=" + Settings.Default["dbName"].ToString() + ";connection timeout=10");
dba = new SqlDataAdapter("SELECT id, symbol, nazwa FROM towar ORDER BY symbol", dbc);
dbt = new DataTable();
dbBs = new BindingSource();
dba.Fill(dbt);
dbBs.DataSource = dbt;
dataGridView1.DataSource = dbBs;
}
Zapis zmian ma się odbywać w tle, więc:
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
dbBs.EndEdit();
dbCmd = new SqlCommandBuilder(dba);
dba.Update(dbt);
}
... i wszystko OK, dopóki nie zdecyduję się na wymazanie zawartości komórki. Taka akcja powoduje, że SqlCommandBuilder tworzy kod, który usiłuje zapisać wartość NULL, w pole tabeli, gdzie nie jest to dozwolone. Jak wymusić żeby zamiast NULLa w tej sytuacji był zapisywany pusty ciąg - '' ?