denildiğinde, checkbox_CheckedChanged adlı bir rutini çağıran onay kutularıyla bir datagrid var. Çok uzak çok iyi. Veri görünümünde başka bir sütunun değerini hesaplamayı başardım. Bu, uğraştığım satırın kimliğini belirlememi sağlıyor.vb.net SQL sorgusu SQL serverde çalışıyor ancak checkbox
Onay kutularının başlangıç değerini tanımlayan sütun değerini değiştirmeye çalışıyorum, ancak yazdığım SQL, vb.net tarafından çağrıldığında işe yaramıyor - girildiğinde çalışıyor Ancak, SQL sunucuya elle.
İşte arkasında benim kod:Public Sub checkbox_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) 'Handles checkbox.CheckedChanged
Dim connectionString As String = WebConfigurationManager.ConnectionStrings("edinsec").ConnectionString
Dim box As CheckBox = DirectCast(sender, CheckBox)
Dim tblcell As TableCell = CType(box.Parent, TableCell)
Dim dgRow As GridViewRow = CType(tblcell.Parent, GridViewRow)
Dim msgId As Integer = unreadMessages.Rows(dgRow.DataItemIndex).Cells(0).Text
Dim insertSQL As String
If box.Checked = True Then
insertSQL = "UPDATE messages"
insertSQL &= "SET readit = 0"
insertSQL &= "WHERE msgid = @msgId"
Else
insertSQL = "UPDATE messages"
insertSQL &= "SET readit = 1"
insertSQL &= "WHERE msgid = @msgId"
End If
Using con As New SqlConnection(connectionString)
Dim cmd As New SqlCommand(insertSQL, con)
cmd.Parameters.AddWithValue("@msgId", msgId)
Try
con.Open()
cmd.ExecuteNonQuery()
Catch Err As SqlException
MsgBox("Error", 65584, "Insertion Error")
End Try
con.Close()
End Using
End Sub
fikri tıklandığında, onay kutusu, karşıtı olan veritabanında 'ReaDit' değerini çevirmek olacaktır. Ancak SqlException'a atlama yapmaya devam ediyor, bu yüzden hata mesajını görüyorum. Herhangi bir yardım çok takdir
<asp:TemplateField HeaderText="readit" SortExpression="readit">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" OnCheckedChanged="checkbox_CheckedChanged" Checked='<%# Bind("readit") %>'
Enabled="true" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" OnCheckedChanged="checkbox_CheckedChanged" Checked='<%# Bind("readit") %>' />
</EditItemTemplate>
</asp:TemplateField>
:
işaret kutusu aspx kod budur. Visual Studio (2008) bu durumda SQL hatalarında sıfır sıfır geri bildirim veriyor, bu da oldukça aldatıcı.
Klaus - çok teşekkürler, SQL'in çalışmasını sağlamak için çalıştı. Sorun şu ki, 'sopa' değiştirmek için iki kez onay kutularına tıklamak zorundayım ... DÜZENLEME: Ben sadece yanlış bir şekilde mantığı vardı ... noob hatası :) – melat0nin