C# form ile bir program geliştiriyorum,
datareader'i kapatmama rağmen bu sorunu aşamıyorum

Şimdiden çok teşekkür ederim yardımlarınız için
Kodları bırakıyorum.
void qrokumavesonra()
{
if (pictureBox1.Image != null)
{
BarcodeReader barcodeReader = new BarcodeReader();
Result result = barcodeReader.Decode((Bitmap)pictureBox1.Image);
if (result != null)
{
textBox1.Text = result.Text;
kod = result.Text;
//sorgu kısmı
try
{
SqlConnectionClass.CheckConnection();
string query = "SELECT CalisanID FROM dbo.QRKodlar WHERE QRKod = @qrKod";
using (SqlCommand command = new SqlCommand(query, SqlConnectionClass.sqlConnection))
{
command.Parameters.AddWithValue("@qrKod", kod); // QR kodunuzun değerini içeren değişken
// Komutu çalıştır ve sonucu al
object result2 = command.ExecuteScalar();
// Sonucun boş olup olmadığını kontrol et
if (result2 != null)
{
int calisanID = Convert.ToInt32(result2);
label2.Text = ("QR kodunun ilişkilendiği CalisanID: " + calisanID);
string timesorgu = "SELECT * FROM GiriscikisKayitlari WHERE CalisanID = @CalisanID";
// İkinci SqlCommand nesnesini burada kullanıyoruz
using (SqlCommand timecmd = new SqlCommand(timesorgu, SqlConnectionClass.sqlConnection))
{
timecmd.Parameters.AddWithValue("@CalisanID", calisanID);
using (SqlDataReader reader = timecmd.ExecuteReader())
{
if (reader.HasRows)
{
reader.Read();
DateTime? girisZamani = reader["GirisZamani"] as DateTime?;
DateTime? cikisZamani = reader["CikisZamani"] as DateTime?;
if (girisZamani == null)
{
query = "UPDATE GiriscikisKayitlari SET GirisZamani = @GirisZamani WHERE CalisanID = @CalisanID";
timecmd.CommandText = query; // Sorguyu güncelle
timecmd.Parameters.AddWithValue("@GirisZamani", DateTime.Now);
timecmd.ExecuteNonQuery();
label3.Text = "Giriş yapıldı.";
}
else if (cikisZamani == null)
{
query = "UPDATE GiriscikisKayitlari SET CikisZamani = @CikisZamani WHERE CalisanID = @CalisanID";
timecmd.CommandText = query; // Sorguyu güncelle
timecmd.Parameters.AddWithValue("@CikisZamani", DateTime.Now);
timecmd.ExecuteNonQuery();
label3.Text = "Çıkış Yapıldı";
}
else
{
query = "INSERT INTO GiriscikisKayitlari (CalisanID, GirisZamani) VALUES (@CalisanID, @GirisZamani)";
timecmd.CommandText = query; // Sorguyu güncelle
timecmd.Parameters.Clear(); // Önceki parametreleri temizle
timecmd.Parameters.AddWithValue("@CalisanID", calisanID);
timecmd.Parameters.AddWithValue("@GirisZamani", DateTime.Now);
timecmd.ExecuteNonQuery();
label3.Text = "İkisi de dolu, giriş yapıldı";
}
// SqlDataReader'ı kapatın
reader.Close();
}
else
{
query = "INSERT INTO GiriscikisKayitlari (CalisanID, GirisZamani) VALUES (@CalisanID, @GirisZamani)";
timecmd.CommandText = query; // Sorguyu güncelle
timecmd.Parameters.Clear(); // Önceki parametreleri temizle
timecmd.Parameters.AddWithValue("@CalisanID", calisanID);
timecmd.Parameters.AddWithValue("@GirisZamani", DateTime.Now);
timecmd.ExecuteNonQuery();
label3.Text = "İlk giriş yapıldı";
// SqlDataReader'ı kapatın
reader.Close();
}
}
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("Hata oluştu: " + ex.Message);
}
}
}
}