Forum
Merhaba,
byte[] data = UTF8Encoding.UTF8.GetBytes(txtSifre.Text);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tripDes = new TripleDESCryptoServiceProvider() { Key = keys, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 })
{
ICryptoTransform transform = tripDes.CreateEncryptor();
byte[] results = transform.TransformFinalBlock(data, 0, data.Length);
if ((txtBaslik.Text == string.Empty) || (txtLink.Text == string.Empty) || (txtKadi.Text == string.Empty) || (txtSifre.Text == string.Empty) || (cmbKategori.Text == string.Empty) || (cmbAltKategori.Text == string.Empty))
{
MessageBox.Show("Lütfen Tüm Alanları Doldurunuz !", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
con.Open();
string kayit = "update PD_Bilgiler set baslik=@baslik,link=@link,kadi=@kadi,sifre=@sifre,kategori=@kategori,alt_kategori=@alt_kategori,aciklama=@aciklama,duzenleme_tarihi=@duzenleme_tarihi where id='" + id.Text + "'";
// müşteriler tablomuzun ilgili alanlarını değiştirecek olan güncelleme sorgusu.
SQLiteCommand komut = new SQLiteCommand(kayit, con);
//Sorgumuzu ve baglantimizi parametre olarak alan bir SqlCommand nesnesi oluşturuyoruz.
komut.Parameters.AddWithValue("@baslik", txtBaslik.Text);
komut.Parameters.AddWithValue("@link", txtLink.Text);
komut.Parameters.AddWithValue("@kadi", txtKadi.Text);
komut.Parameters.AddWithValue("@sifre", Convert.ToBase64String(results, 0, results.Length));
komut.Parameters.AddWithValue("@kategori", cmbKategori.Text);
komut.Parameters.AddWithValue("@alt_kategori", cmbAltKategori.Text);
komut.Parameters.AddWithValue("@aciklama", txtAciklama.Text);
komut.Parameters.AddWithValue("@duzenleme_tarihi", DateTime.Now);
//Parametrelerimize Form üzerinde ki kontrollerden girilen verileri aktarıyoruz.
komut.ExecuteNonQuery();
//Veritabanında değişiklik yapacak komut işlemi bu satırda gerçekleşiyor.
con.Close();
MessageBox.Show("Bilgiler Güncellendi.");
frmBilgilerEkrani f2 = (frmBilgilerEkrani)Application.OpenForms["frmBilgilerEkrani"];
f2.KayitlariDoldur();
this.Close();
}
}
}
Yukarıda belirttiğim kodları derledikten sonra programda kayıt güncelleme ekranında kayıt yaparken Sqlite veritabanından database is locked hatası alıyorum. Konu ile ilgili yardımlarınızı bekler iyi çalışmalar dilerim.
bu soru daha fazla yazılım ile ilgili. çok uzmanlık alanıma girmiyor. Db file a özellikler deyip internetten indirilmiş gibi locked özelliğini kontrol ettiniz mi ? concurrency ile ilgili bir sorun olabilir mi tek instance mı çalışıyorsunuz ?