kumandan11
Üye
- Katılım
- 4 Ağu 2013
- Mesajlar
- 26
- Puanları
- 1
SORUN ÇÖZÜLDÜ
Yardımlarınız için Teşekkür ederim.
Yukarıdaki kod tek başına labele değeri yazmaktadır. Fakat aşağıdaki koddaki gibi for döngüsü içinde kullandığımda
System.NullReferenceException: 'Nesne başvurusu bir nesnenin örneğine ayarlanmadı.'
System.Windows.Forms.DataGridViewCell.Value.get, Nothing döndürdü.
Kullanmak istediğim yer uzun versiyonu
Yardımlarınız için Teşekkür ederim.
C:
Label13.Text = DataGridView3.Rows(0).Cells(1).Value.ToString
Yukarıdaki kod tek başına labele değeri yazmaktadır. Fakat aşağıdaki koddaki gibi for döngüsü içinde kullandığımda
System.NullReferenceException: 'Nesne başvurusu bir nesnenin örneğine ayarlanmadı.'
System.Windows.Forms.DataGridViewCell.Value.get, Nothing döndürdü.
C:
For i As Integer = 0 To DataGridView3.RowCount - 1
Label13.Text = DataGridView3.Rows(i).Cells(1).Value.ToString
Next
Kullanmak istediğim yer uzun versiyonu
C:
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
For i As Integer = 0 To DataGridView3.RowCount - 1
Try
connectionnn.Open()
Catch ex As Exception
MessageBox.Show("Bağlantı başarısız !!!" & vbCrLf & "Lütfen sunucunun hazır olup olmadığını kontrol edin !!!", "Hata mesajı", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End Try
ID = DataGridView3.Rows(i).Cells(1).Value.ToString
Try
command.CommandType = CommandType.Text
command.CommandText = "SELECT * FROM " & Table_Name1 & " WHERE ID LIKE '" & ID & "'"
adapter = New SqlDataAdapter(command.CommandText, connectionnn)
DT = New DataTable
Data = adapter.Fill(DT)
If Data > 0 Then
ID = DT.Rows(0).Item("ID")
isim = DT.Rows(0).Item("Name")
Else
MsgBox("ID bulunamadı !!!" & vbCr & "Lütfen ID'nizi kaydedin.", MsgBoxStyle.Information, "Bilgi Mesajı")
End If
Catch ex As Exception
MsgBox("Veritabanı yüklenemedi !!!" & vbCr & ex.Message, MsgBoxStyle.Critical, "Hata mesajı")
connectionnn.Close()
Return
End Try
DT = Nothing
connectionnn.Close()
Try
connectionnn.Open()
command.CommandType = CommandType.Text
command.CommandText = "SELECT TOP 1 * FROM " & Table_Name2 & " WHERE ID LIKE '" & ID & "' ORDER BY Giriş_Tarihi DESC,Giriş_Saati DESC"
adapter = New SqlDataAdapter(command.CommandText, connectionnn)
DT = New DataTable
Data = adapter.Fill(DT)
If Data > 0 Then
G_D = DT.Rows(0).Item("Giriş_Durumu")
Ç_D = DT.Rows(0).Item("Çıkış_Durumu").ToString()
If Giriş_D = "GİRİŞ" Then
If Ç_D = "" Then
G_Durumu = True
End If
End If
If Ç_D = "ÇIKIŞ" Then
G_Durumu = False
End If
Else
DT = Nothing
connectionnn.Close()
Try
connectionnn.Open()
command.CommandType = CommandType.Text
command.CommandText = "SELECT * FROM " & Table_Name1 & " WHERE ID LIKE '" & ID & "'"
adapter = New SqlDataAdapter(command.CommandText, connectionnn)
DT = New DataTable
Data = adapter.Fill(DT)
If Data > 0 Then
DT = Nothing
connectionnn.Close()
If G_Durumu = False Then
connectionnn.Open()
Try
command = New SqlCommand
With command
.CommandText = "INSERT INTO " & Table_Name2 & " (Name, ID, Giriş_Tarihi, Giriş_Saati, Giriş_Durumu) VALUES (@name, @id, @giriş_tarihi, @giriş_saati, @giriş_durumu)"
.Connection = connectionnn
.Parameters.AddWithValue("@name", DataGridView3.Rows(i).Cells(0).Value.ToString)
.Parameters.AddWithValue("@id", DataGridView3.Rows(i).Cells(1).Value.ToString)
.Parameters.AddWithValue("@giriş_tarihi", DataGridView3.Rows(i).Cells(2).Value.ToString)
.Parameters.AddWithValue("@giriş_saati", DataGridView3.Rows(i).Cells(3).Value.ToString)
.Parameters.AddWithValue("@giriş_durumu", "GİRİŞ")
.ExecuteNonQuery()
End With
'LabelTarih.Text = DateTime.Now.ToString("yyyy-MM-dd")
'LabelSaat.Text = DateTime.Now.ToString("HH:mm:ss")
'LabelDurum.Text = "Giriş Yapıldı. İyi Çalışmalar."
'LabelDurum.Visible = True
connectionnn.Close()
Catch ex As Exception
MsgBox("Insert yüklenemedi !!!" & vbCr & ex.Message, MsgBoxStyle.Critical, "Hata mesajı")
Return
End Try
End If
Else
MsgBox("ID bulunamadı !!!" & vbCr & "Lütfen ID'nizi kaydedin.", MsgBoxStyle.Information, "Bilgi Mesajı")
End If
Catch ex As Exception
MsgBox("Veritabanı yüklenemedi !!!" & vbCr & ex.Message, MsgBoxStyle.Critical, "Hata mesajı")
connectionnn.Close()
Return
End Try
DT = Nothing
connectionnn.Close()
End If
Catch ex As Exception
MsgBox("Veritabanı yüklenemedi !!!" & vbCr & ex.Message, MsgBoxStyle.Critical, "Hata mesajı")
connectionnn.Close()
Return
End Try
DT = Nothing
connectionnn.Close()
Try
connectionnn.Open()
command.CommandType = CommandType.Text
command.CommandText = "SELECT TOP 1 * FROM " & Table_Name2 & " WHERE ID LIKE '" & ID & "' ORDER BY Giriş_Tarihi DESC,Giriş_Saati DESC"
adapter = New SqlDataAdapter(command.CommandText, connectionnn)
DT = New DataTable
Data = adapter.Fill(DT)
If Data > 0 Then
G_D = DT.Rows(0).Item("Giriş_Durumu")
Ç_D = DT.Rows(0).Item("Çıkış_Durumu").ToString()
If G_D = "GİRİŞ" Then
If Ç_D = "" Then
G_Durumu = True
End If
End If
If Ç_D = "ÇIKIŞ" Then
G_Durumu = False
End If
End If
Catch ex As Exception
MsgBox("Veritabanı yüklenemedi !!!" & vbCr & ex.Message, MsgBoxStyle.Critical, "Hata mesajı")
connectionnn.Close()
Return
End Try
DT = Nothing
connectionnn.Close()
Try
connectionnn.Open()
If G_Durumu = False Then
Try
command = New SqlCommand
With command
.CommandText = "INSERT INTO " & Table_Name2 & " (Name, ID, Giriş_Tarihi, Giriş_Saati, Giriş_Durumu) VALUES (@name, @id, @giriş_tarihi, @giriş_saati, @giriş_durumu)"
.Connection = connectionnn
.Parameters.AddWithValue("@name", DataGridView3.Rows(i).Cells(0).Value.ToString)
.Parameters.AddWithValue("@id", DataGridView3.Rows(i).Cells(1).Value.ToString)
.Parameters.AddWithValue("@giriş_tarihi", DataGridView3.Rows(i).Cells(2).Value.ToString)
.Parameters.AddWithValue("@giriş_saati", DataGridView3.Rows(i).Cells(3).Value.ToString)
.Parameters.AddWithValue("@giriş_durumu", "GİRİŞ")
.ExecuteNonQuery()
End With
'LabelTarih.Text = DateTime.Now.ToString("yyyy-MM-dd")
'LabelSaat.Text = DateTime.Now.ToString("HH:mm:ss")
'LabelDurum.Text = "Giriş Yapıldı. İyi Çalışmalar."
'LabelDurum.Visible = True
connectionnn.Close()
Catch ex As Exception
MsgBox("Insert yüklenemedi !!!" & vbCr & ex.Message, MsgBoxStyle.Critical, "Hata mesajı")
Return
End Try
Else
Try
command = New SqlCommand
With command
.CommandText = ";WITH CTE AS ( SELECT TOP 1 * FROM " & Table_Name2 & " WHERE ID LIKE '" & ID & "' ORDER BY Giriş_Tarihi DESC,Giriş_Saati DESC) UPDATE CTE SET Çıkış_Tarihi=@çıkış_tarihi,Çıkış_Saati=@çıkış_saati,Çıkış_Durumu=@çıkış_durumu WHERE ID=@id"
.Connection = connectionnn
.Parameters.AddWithValue("@id", DataGridView3.Rows(i).Cells(1).Value.ToString)
.Parameters.AddWithValue("@çıkış_tarihi", DataGridView3.Rows(i).Cells(2).Value.ToString)
.Parameters.AddWithValue("@çıkış_saati", DataGridView3.Rows(i).Cells(3).Value.ToString)
.Parameters.AddWithValue("@çıkış_durumu", "ÇIKIŞ")
.ExecuteNonQuery()
End With
Catch ex As Exception
MsgBox("Güncelle yapılamadı !!!" & vbCr & ex.Message, MsgBoxStyle.Critical, "Hata mesajı")
Return
End Try
'LabelTarih.Text = DateTime.Now.ToString("yyyy-MM-dd")
'LabelSaat.Text = DateTime.Now.ToString("HH:mm:ss")
'LabelDurum.Text = "Çıkış Yapıldı. İyi İstirahatlar."
'LabelDurum.Visible = True
connectionnn.Close()
End If
Catch ex As Exception
'LabelDurum.Text = "Bilgiler kaydedilemedi !!!"
'LabelDurum.Visible = True
connectionnn.Close()
Return
End Try
connectionnn.Close()
Next
End Sub
Son düzenleme: