Клаус - большое спасибо, это помогло запустить SQL. Проблема в том, что я должен дважды щелкнуть по флажкам, чтобы получить «палку» ... РЕДАКТИРОВАТЬ: у меня просто была неправильная логика ... ошибка нуба :)

я есть сетка данных с флажками, которая вызывает процедуру с именем checkbox_CheckedChanged. Все идет нормально. Мне удалось заставить его работать со значением другого столбца в представлении данных, что позволяет мне определить идентификатор строки, с которой я имею дело.

Я пытаюсь заставить его изменить значение столбца, который определяет начальное значение флажков, но написанный мной SQL не работает при вызове vb.net - он работает при вводе вручную на SQL-сервер , тем не мение.

Вот мой код позади:

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

Идея состоит в том, что при нажатии этот флажок перевернет значение 'readit' в базе данных на противоположное. Однако он продолжает переходить к SqlException, поэтому я вижу сообщение об ошибке.

Код aspx для флажков следующий:

          <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>

Любая помощь приветствуется. Visual Studio (2008) даетнуль Отзывы об ошибках SQL в этой ситуации, что довольно бешено.

Ответы на вопрос(1)

Ваш ответ на вопрос