Witam.
Mam taki problem.
W DataGridView robię sobie małe zestawienie. Mam problem z menu: "Zapisz" i "Zapisz jako...".
Jak wprowadzę do tabeli jakieś dane to gdy nacisnę przycisk "Zapisz" powinno otworzyć się okno "Zapisz jako...", a później już tylko "Zapisz".
Przy pierwszym zapisie czyli "Zapisz jako..." wszystko jest ok, ale już przy drugim zapisie "Zapisz" przy lini :
StreamWriter f = new StreamWriter(plik);
wyskakuje mi alert: "Pusta nazwa ścieżki jest niedozwolona".
Oto fragment kodów:
private void zapiszToolStripMenuItem_Click(object sender, EventArgs e)
{
if (plik != null)
{
StreamWriter f = new StreamWriter(plik);
//f.WriteLine();
//{
for (int r = 0; r <= dataGridView1.Rows.Count - 1; r++)
{
for (int c = 0; c <= dataGridView1.Columns.Count - 1; c++)
{
plik = plik + dataGridView1.Rows[r].Cells[c].Value;
if (c != dataGridView1.Columns.Count - 1)
{
plik = plik + ";";
}
}
f.WriteLine(plik);
plik = "";
}
//}
f.Close();
}
else zapiszJakoToolStripMenuItem_Click(sender, e);
}
private void zapiszJakoToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.FileName = plik;
dialog.Filter = "Plik csv (*.csv)|*.csv|All files (*.*)|*.*";
dialog.FilterIndex = 1;
dialog.DefaultExt = "csv";
if (dialog.ShowDialog() == DialogResult.OK && dialog.FileName.Length > 0)
{
StreamWriter f = new StreamWriter(dialog.FileName.ToString());
f.WriteLine();
for (int r = 0; r <= dataGridView1.Rows.Count - 1; r++)
{
for (int c = 0; c <= dataGridView1.Columns.Count - 1; c++)
{
plik = plik + dataGridView1.Rows[r].Cells[c].Value;
if (c < dataGridView1.Columns.Count - 1)
{
plik = plik + ";";
}
}
f.WriteLine(plik);
plik = "";
}
f.Close();
}