Witam,
Celem jest dopisanie w internetowej bazie MSSql przez program desktopowy jednorazowo od kilkudziesięciu do tysiąca rekordów z bazy na lokalnym PC.
Przedstawiony kod działa.
Wątpliwości dotyczą umieszczenia try{} i ogólnie poprawności przedstawionego zapisu.
Uprzejmie proszę o uwagi.
connDB="...conectionstring do bazy lokalnej na PC...";
connW="...conectionstring do bazy w internecie...";
DateTime data=DateTime.Now; // jakas data
try
{
// 1 przygotowanie połączenia z bazą w internecie
SqlConnection conn2 = new SqlConnection();
conn2.ConnectionString = connW;
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = conn2;
cmd2.CommandType = CommandType.Text;
cmd2.CommandText = "INSERT INTO Osoby (Nazwisko, Wiek) VALUES (@Nazwisko, @Wiek)";
cmd2.Parameters.Add("@Nazwisko", SqlDbType.VarChar);
cmd2.Parameters.Add("@Wiek", SqlDbType.Int);
// 2 zapytanie z lokalnej bazy na PC
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connDB;
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT Nazwisko, Wiek FROM Wykaz WHERE Data>=@data";
cmd.Parameters.AddWithValue("@data", data);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
// aktualizacja danych w bazie w internecie
conn2.Open();
cmd2.Parameters.["@Nazwisko"].Value = Convert.ToDateTime(dr[0]);
cmd2.Parameters.["@Wiek"].Value = Convert.ToString(dr[1]);
cmd2.ExecuteNonQuery();
conn2.Close();
}
}
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show("Błąd: " + ex.ToString());
}