Example #1
0
        public Person LoadPerson(int id)
        {
            try {
                if (Ids.Contains(id)) {
                    con.Open();
                    string stm = "Select * from person where id = @theID";

                    SqlCommand cmd = new SqlCommand(stm, con);
                    cmd.Parameters.AddWithValue("@theId", id);

                    SqlDataReader reader = cmd.ExecuteReader();
                    reader.Read();

                    Person p = new Person();
                    p.Address = reader.GetString(2);
                    p.Id = reader.GetInt32(0);
                    p.Name = reader.GetString(1);
                    p.Rating = reader.GetInt32(3);
                    p.Ts = (byte[]) reader["ts"];
                    return p;
                } else {
                    return null;
                }
            } finally {
                con.Close();
            }
        }
 private void SavePerson(object sender, RoutedEventArgs e)
 {
     Person p = new Person();
     p.Ts = loadedPerson.Ts;
     p.Address = AdressBox.Text;
     p.Name = NameBox.Text;
     p.Rating = Int32.Parse(RatingBox.Text);
     p.Id = loadedPerson.Id;
     service.SavePerson(p);
 }
 private void LoadPerson(object sender, RoutedEventArgs e)
 {
     loadedPerson = service.LoadPerson(Int32.Parse(IdBox.Text));
     if (loadedPerson != null) {
         NameBox.Text = loadedPerson.Name;
         AdressBox.Text = loadedPerson.Address;
         RatingBox.Text = "" + loadedPerson.Rating;
         string b = "";
         foreach (byte by in loadedPerson.Ts) {
             b += by;
         }
         TsLabel.Content = b;
     } else {
         NameBox.Text = "Wrong ID!";
     }
 }
Example #4
0
        public void SavePerson(Person person)
        {
            try {
                con.Open();

                string stm1 = "Select * from person where id = @theID";

                SqlCommand cmd1 = new SqlCommand(stm1, con);
                cmd1.Parameters.AddWithValue("@theId", person.Id);
                SqlTransaction transaction = con.BeginTransaction(IsolationLevel.Serializable);
                cmd1.Transaction = transaction;
                SqlDataReader reader = cmd1.ExecuteReader();
                reader.Read();
                Person p = new Person();
                p.Address = reader.GetString(2);
                p.Id = reader.GetInt32(0);
                p.Name = reader.GetString(1);
                p.Ts = (byte[])reader["ts"];
                reader.Close();
                if (Enumerable.SequenceEqual(p.Ts, person.Ts)) {
                    string stm2 =
                        "update person set name = @name, address = @address, rating = @rating where id = @id";
                    SqlCommand cmd2 = new SqlCommand(stm2, con);
                    cmd2.Parameters.AddWithValue("@name", person.Name);
                    cmd2.Parameters.AddWithValue("@address", person.Address);
                    cmd2.Parameters.AddWithValue("@rating", person.Rating);
                    cmd2.Parameters.AddWithValue("@ts", person.Ts);
                    cmd2.Parameters.AddWithValue("@id", person.Id);
                    cmd2.Transaction = transaction;
                    int i = cmd2.ExecuteNonQuery();
                    MessageBox.Show("" + i);
                    transaction.Commit();
                } else {
                    transaction.Rollback();
                    MessageBox.Show("Different Timestamps, reread values are: " + p.ToString());
                }

            } finally {
                con.Close();
            }
        }