Chciałbym automatycznie aktualizować baze po wprowadzeniu zmian w datagriedview. Niestety poległem i nie wiem co dalej zrobić. Za bledy w kodzie przepraszam, bo jeszcze sie ucze ;)
namespace hccp2
{
public partial class Form1 : Form
{
string connString = hccp2.Properties.Settings.Default.HCCPConnectionString;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//wczytuje pielgniarki do comboxa
// TODO: Ten wiersz kodu wczytuje dane do tabeli 'hCCPDataSet.piel' . Możesz go przenieść lub usunąć.
this.pielTableAdapter.Fill(this.hCCPDataSet.pielegniarki);
//pobieranie roku/miesiaca do comboboxa
//polaczenie
string connString = hccp2.Properties.Settings.Default.HCCPConnectionString;
SqlConnection conn = new SqlConnection(connString);
conn.Open();
string ssql2 = "select distinct year(data) as Rok from zapl";
string ssql1 = "select distinct month(data) as Miesiąc from zapl";
SqlCommand objCmd2 = new SqlCommand(ssql2, conn);
SqlCommand objCmd1 = new SqlCommand(ssql1, conn);
objCmd2.ExecuteNonQuery();
objCmd1.ExecuteNonQuery();
//kopiwoanei do comboboxa
SqlDataAdapter da2 = new SqlDataAdapter(objCmd2);
DataTable table2 = new DataTable();
da2.Fill(table2);
comboBox2.Controls.Clear();
comboBox2.DataSource = table2;
comboBox2.DisplayMember = "Rok";
comboBox2.ValueMember = "Rok";
SqlDataAdapter da = new SqlDataAdapter(objCmd1);
DataTable table1 = new DataTable();
da.Fill(table1);
comboBox3.Controls.Clear();
comboBox3.DataSource = table1;
comboBox3.DisplayMember = "Miesiąc";
comboBox3.ValueMember = "Miesiąc";
conn.Close();
}
private void button1_Click(object sender, EventArgs e)
{
string id;
id = comboBox1.SelectedValue.ToString();
//polaczenie
SqlConnection conn = new SqlConnection(connString);
conn.Open();
int idp;
bool parsed3 = Int32.TryParse(id, out idp);
//zaplanowane
try
{
//zaplanowane
//zaplanowane wybor miesiaca i roku(wybieram tylko rekord ktory spelnia warunki)
string ssql = "SELECT dniowki AS [Dniówki],nocki AS [Nocki],ranki AS [Ranki],dodatkowe AS [Dodatkowe] FROM zapl LEFT OUTER JOIN pielegniarki ON zapl.userid = pielegniarki.id WHERE (zapl.userid =" + idp + "and Year(data)= " + comboBox2.SelectedValue.ToString() + "and Month(data)= " + comboBox3.SelectedValue.ToString() + ")";
SqlCommand objCmd = new SqlCommand(ssql, conn);
//wpylenianie zaplnowanych
objCmd.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter(objCmd);
DataTable table = new DataTable();
da.Fill(table);
bindingSource1.DataSource = table;
dataGridView1.DataSource = bindingSource1;
da.Update(table);
// konwertowanie z datagriedview do intow
int dn = Convert.ToInt32(dataGridView1.Rows[0].Cells[0].Value);
int n = Convert.ToInt32(dataGridView1.Rows[0].Cells[1].Value);
int r = Convert.ToInt32(dataGridView1.Rows[0].Cells[2].Value);
int d = Convert.ToInt32(dataGridView1.Rows[0].Cells[3].Value);
//obliczenie czasu
int liczenie = (dn * 12 * 60) + (n * 12 * 60) + (r * 455) + d;
//konwertowanie intow na godziny i minuty
TimeSpan span1 = TimeSpan.FromMinutes(liczenie);
string godziny = string.Format("{0}:{1}",
((int)span1.TotalHours), span1.Minutes);
textBox1.Text = godziny;
//wykonane
//wykonane wybor miesiaca i plany
string ssql2 = "SELECT dniowki AS [Dniówki],nocki AS [Nocki],ranki AS [Ranki],dodatkowe AS [Dodatkowe] FROM wyk LEFT OUTER JOIN pielegniarki ON wyk.userid = pielegniarki.id WHERE (wyk.userid =" + idp + "and Year(data)= " + comboBox2.SelectedValue.ToString() + "and Month(data)= " + comboBox3.SelectedValue.ToString() + ")";
SqlCommand objCmd2 = new SqlCommand(ssql2, conn);
//wpylenianie wyk
objCmd2.ExecuteNonQuery();
SqlDataAdapter da2 = new SqlDataAdapter(objCmd2);
DataTable table2 = new DataTable();
da2.Fill(table2);
dataGridView2.DataSource = table2;
dataGridView2.Invalidate();
dataGridView2.Refresh();
// konwertowanie z datagriedview do intow
int dn2 = Convert.ToInt32(dataGridView2.Rows[0].Cells[0].Value);
int n2 = Convert.ToInt32(dataGridView2.Rows[0].Cells[1].Value);
int r2 = Convert.ToInt32(dataGridView2.Rows[0].Cells[2].Value);
int d2 = Convert.ToInt32(dataGridView2.Rows[0].Cells[3].Value);
//obliczenie czasu
int liczenie2 = (dn2 * 12 * 60) + (n2 * 12 * 60) + (r2 * 455) + d2;
TimeSpan span2 = TimeSpan.FromMinutes(liczenie2);
string godziny2 = string.Format("{0}:{1}",
((int)span2.TotalHours), span2.Minutes);
textBox2.Text = godziny2;
// obliczanie i wysietlaeni roznicy
TimeSpan wyn = span1- span2;
string roznica = string.Format("{0}:{1}",
((int)wyn.TotalHours), wyn.Minutes);
textBox3.Text = roznica;
}
catch
{
MessageBox.Show("Błąd");
}
conn.Close();
}
private void button2_Click(object sender, EventArgs e)
{
Form2 dodawanie = new Form2();
dodawanie.Show();
}
private void button3_Click(object sender, EventArgs e)
{
Form3 dodawanie = new Form3();
dodawanie.Show();
}
private void button4_Click(object sender, EventArgs e)
{
}
void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.DataSource = bindingSource1;
dataGridView1.Update();
dataGridView1.Refresh();
}
}
}