.NET下,利用二维数组“组合”查询之优化
以前写过一篇博客《Vb.net下,利用数组进行“组合”查询》。这篇博客中,针对“机房收费系统”中这种组合方式的查询进行了分析。
当时,那篇博客是我经过好几天的思考才将这个功能实现,然后就迫不及待的写出来和大家分享一下。写的时候也没有考虑的太多,只是单纯的能够将功能实现而已。但是在评论区,有很多热心的大虾,他们认真的读了我的博客,给我提出了很多中肯的意见,如下:


针对各位大虾提出的意见,加之这次录制视频也包括这一部分,所以我又认真的对上次的代码针对这些意见做了一些改进。在此很真诚的感谢以上给我提出宝贵意见的大侠们。
好了废话不多说,下面进入代码的优化讲解。
至于界面层,这里就不再贴图了,和链接博客中的一样。在这里说明一下:下拉列表中的所有汉字不用在frmWorkRecord_Load中定义了,而是通过将下拉列表中的汉字放到ComboBox的Item属性里。

下面就是U层代码了
Imports EntityImports System.Data.SqlClientPublic Class OnDutyTeacher Function test(ByVal arrTeacherE() As TeacherE) As DataTable Dim strSqlText As String = "select * from Teacher_Info where " & arrTeacherE(0).Name & arrTeacherE(3).Operation & " " & "@txtName1" & arrTeacherE(9).Compone & " " & arrTeacherE(1).Name & arrTeacherE(4).Operation & " " & "@txtName2" & " " & arrTeacherE(10).Compone & " " & arrTeacherE(2).Name & " " & arrTeacherE(5).Operation & "@txtName3" & " " Dim param() As SqlParameter Dim intInfluencedRecord As Integer param = New SqlParameter() {New SqlParameter("@txtName1", SqlDbType.Char, 10), New SqlParameter("@txtName2", SqlDbType.Char, 10), New SqlParameter("@txtName3", SqlDbType.Char, 10)} param(0).Value = arrTeacherE(6).txtName.ToString() param(1).Value = arrTeacherE(7).txtName.ToString() param(2).Value = arrTeacherE(8).txtName.ToString() intInfluencedRecord = SQLHelper.SQLHelper.ExecuteNoQuery(strSqlText, CommandType.Text, param) If intInfluencedRecord > 0 Then Return True Else Return False End If End FunctionEnd Class