Forum

c# sqlite database ...
 
Bildirimler
Hepsini Temizle

c# sqlite database is locked hatası

2 Yazılar
2 Üyeler
0 Reactions
2,632 Görüntüleme
(@muratgultekin)
Gönderiler: 13
Eminent Member
Konu başlatıcı
 

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.

 
Gönderildi : 24/06/2019 13:16

(@cankaya)
Gönderiler: 119
Üye
 

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 ?

 
Gönderildi : 25/06/2019 20:38

Paylaş: