У меня есть проблема в записи удаления. Я использую VB.net с базой данных Access. Когда я пытаюсь запустить эту программу, ошибок нет, но запись не удалялась в базе данных. Есть один класс для удаления записи, и этот класс будет вызывать другой метод, который вызывает DeleteMultipleRecords. Вот мой код, надеюсь, кто-нибудь может помочь мне решить эту проблему.Удалить запись с использованием GridView
-Default.aspx.vb-
Protected Sub btnDelete_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDelete.Click
'create string collection to store IDs of records to be deleted
Dim idCollection As New StringCollection()
Dim strID As String = String.Empty
'Loop through GridView rows to find checked rows
For i As Integer = 0 To i < GridView1.Rows.Count - 1
Dim chkDelete As CheckBox = DirectCast(GridView1.Rows(i).Cells(0).FindControl("chkSelect"), CheckBox)
If chkDelete IsNot Nothing Then
If chkDelete.Checked Then
strID = GridView1.Rows(i).Cells(1).Text
idCollection.Add(strID)
End If
End If
Next
'called method to delete record
DeleteMultipleRecords(idCollection)
'rebind(GridView)
GridView1.DataBind()
End Sub
Private Sub DeleteMultipleRecords(ByVal idCollection As StringCollection)
'create connection
Dim cnnOLEDB As New OleDbConnection(strConnection)
Dim IDs As String = ""
'create string builder to store
'delete commands seperated by ;
For Each id As String In idCollection
IDs += id.ToString() & ","
Next
Try
Dim strIDs As String = IDs.Substring(0, IDs.LastIndexOf(""))
Dim strSql As String = ("Delete from Details WHERE ID = '" & strIDs & "' ")
cmdOLEDB.CommandType = CommandType.Text
cmdOLEDB.CommandText = strSql
cmdOLEDB.Connection = cnnOLEDB
cnnOLEDB.Open()
cmdOLEDB.ExecuteNonQuery()
cmdOLEDB.Dispose()
Catch ex As OleDbException
Dim errorMsg As String = "Error in Deletion"
errorMsg += ex.Message
Throw New Exception(errorMsg)
Finally
cnnOLEDB.Close()
End Try
End Sub
-Default.aspx-
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
DataSourceID="SqlDataSource1" AutoGenerateColumns="False" DataKeyNames="ID">
<Columns>
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID"/>
<asp:TemplateField HeaderText="Name"
SortExpression="Name">
<ItemTemplate>
<asp:TextBox ID="txtName" runat="server"
Text='<%# Bind("Name") %>' ReadOnly="true"
BorderStyle="none"
BorderWidth="0px" >
</asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Location"
SortExpression="Location">
<ItemTemplate>
<asp:TextBox ID="txtLocation" runat="server"
Text='<%# Bind("Location") %>'
ReadOnly="true"
BorderStyle="none" BorderWidth="0px">
</asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:LabSystemDBConnectionString %>"
ProviderName="<%$ ConnectionStrings:LabSystemDBConnectionString.ProviderName %>"
SelectCommand="SELECT * FROM [Details]"
DeleteCommand = "DELETE FROM [Details] WHERE ID = [@ID]">
<DeleteParameters>
<asp:Parameter Name="ID" />
</DeleteParameters></asp:SqlDataSource>
<asp:Button ID="btnDelete" runat="server" OnClick="btnDelete_Click" OnClientClick="return DeleteConfirmation();" Text="Delete" />
<br />
Я уже изменить, но он по-прежнему так же, никакой ошибки, но это не не удалить запись – user692495