学校项目:将冒泡排序后的数组写回数据库的实现疑问
解决排序后数组写回数据库的问题
嘿,我明白你现在的困扰——已经把名字数组用冒泡排序搞定了,但不知道怎么把排序后的结果同步回数据库对吧?别担心,我来一步步帮你解决这个问题。
首先先提个小细节:你现有代码里重复定义了Length变量(两次Dim Length As Integer),这会导致编译错误,得先把其中一个删掉,比如排序部分的那个可以直接用之前定义好的Length。
接下来是核心的写回步骤,思路很简单:既然你已经有了排序后的arrName数组,只需要把数组里的每个值对应放回DataTable的每一行,然后用数据集的TableAdapter把修改提交到数据库就行。
修改后的完整代码:
Dim dt As DataTable = Me.Patient_ListingDataSet.Tables(0) '------ Creating Name Array ------' listName.DataSource = Me.PatientListingBindingSource listName.DisplayMember = "pName" Dim Length As Integer = Me.listName.Items.Count - 1 Dim i = 0 ReDim arrName(Length) For Each row As DataRow In dt.Rows arrName(i) = $"{(row("pName"))}" i += 1 Next '----- Bubble sorting Names (Z - A) -----' Dim swapped As Boolean = True Dim bubbleTempName As String While swapped = True swapped = False ' 这里直接用之前定义的Length,不用重新定义 For Pass = 1 To Length For i = 0 To Length - 1 If arrName(i) < arrName(i + 1) Then bubbleTempName = arrName(i) arrName(i) = arrName(i + 1) arrName(i + 1) = bubbleTempName swapped = True End If Next i Next Pass End While ' ========== 新增:把排序后的数组写回DataTable ========== For i = 0 To dt.Rows.Count - 1 ' 把arrName里的每个值赋值给对应行的pName列 dt.Rows(i)("pName") = arrName(i) Next ' ========== 提交修改到数据库 ========== Try ' 假设你的TableAdapter是Patient_ListingTableAdapter,根据实际情况替换 Me.Patient_ListingTableAdapter.Update(Me.Patient_ListingDataSet) ' 刷新BindingSource,让界面显示最新的排序结果 Me.PatientListingBindingSource.ResetBindings(False) MessageBox.Show("排序已成功保存到数据库!") Catch ex As Exception MessageBox.Show("保存失败:" & ex.Message) End Try
关键步骤解释:
- 更新DataTable:通过循环把
arrName里的每个排序后名字,依次赋值给dt(DataTable)每一行的pName字段,这样DataTable就和排序后的数组同步了。 - 提交到数据库:使用
TableAdapter.Update()方法,把DataTable的修改提交到数据库——这里要注意替换成你实际项目里的TableAdapter名称(比如你的数据集是Patient_ListingDataSet,对应的TableAdapter通常是Patient_ListingTableAdapter)。 - 刷新界面:调用
BindingSource.ResetBindings(False)让界面上的控件(比如你的listName)更新显示排序后的结果。
另外提个小建议:虽然你是学校项目要求用冒泡排序,但实际开发里如果要对数据库数据排序,更高效的方式是直接在查询数据库的时候用ORDER BY pName DESC(Z-A排序),这样不用把数据读到数组里再排序,但既然是项目要求,那就按你的方式来就好😉
内容的提问来源于stack exchange,提问作者SwiftWombat
相关产品推荐
相关产品推荐

