如果兩種情況均未得到滿足,此代碼塊可正常工作。不幸的是,如果在一個程序的同一個實例運行中遇到兩種情況,則搜索的兩列將被合併或增加。但結果不合並。只是列。例如:案例「服務器」將有列A1,A2,A3無論我通過案例服務器運行多少次,它都會很好。但是如果我運行「患者」病例,我的專欄現在是A1,A2,A3,B1,B2,B3。如果我運行案例患者然後案例服務器,但是列將以不同的順序。vb.net:爲什麼我的datagridview堅持結合2個不同的sql搜索?
Private Sub frmSearch_Load(sender As Object, e As EventArgs) Handles MyBase.Load
With dgvSearch
dt.Clear()
.DataSource = Nothing
.Columns.Clear()
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill 'this does not allow resizing of column width
Select Case formSwitch
Case "Server"
sql = "Select cnn, server, port, uid, detail from tbl_cnnstrings"
SelectQuery(lcnn, 3)
.DataSource = dt
.Columns(0).HeaderText = "Connection Name"
.Columns(1).HeaderText = "Server"
.Columns(2).HeaderText = "Port"
.Columns(3).HeaderText = "Uid"
.Columns(4).HeaderText = "Detail"
Try 'this code block resizes column and bypass error
.Columns(2).Width = 50
Catch ex As Exception
End Try
Case "Patients"
sql = "Select concat(patientid_yr, '-', patientid_m, '-', patientid_no) as patientid, concat_ws(' ', lname, ',', fname, ' ', mname) as name from tbl_patinfo order by name;"
SelectQuery(cnn, 3)
.DataSource = dt
.Columns(0).HeaderText = "Patient ID"
.Columns(1).HeaderText = "Patient Name"
Try 'this code block resizes column and bypass error
.Columns(0).Width = 100
Catch ex As Exception
End Try
End Select
End With
End Sub
我的理論是我沒有正確清理數據表。 FYI:dt =數據表,da = mysqldataadapter,SelectQuery = mysql連接和查詢的自定義子集。 lcnn和cnn只是連接字符串。 採樣輸出: http://i58.tinypic.com/30jkwb9.png
如果你打算低估我,你至少可以解釋。我很確定我今天洗了澡。 – YinYangKim