朋友,我有在vb.net以下的代码:
Private Sub btnSetGrade_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetGrade.Click
Dim CollIndex As Integer = 0, TempID As Integer = 0, SaveID As Integer = 0
Dim ColName As String = "", TempIDTotal As String = "", QryGetTot As String = ""
cmdExecute("delete from tbTestHeading")
cmdExecute("insert into tbTestHeading (tempID) values (1)")
'==================Get Subject Name of Current Session=================================
Dim dsSession As DataSet = DirectCast(cmdGetData("SELECT DISTINCT [session],class_id FROM testmaster WHERE (Srno IN (SELECT srno FROM testdetail WHERE (stcode =" & txtStudentCode.Text & ") ORDER BY srno)) order by [session]"), DataSet)
Dim sessionID As String = "", classID As String = ""
For i = 0 To dsSession.Tables(0).Rows.Count - 1
sessionID = sessionID & "'" & dsSession.Tables(0).Rows(i)(0) & "',"
classID = classID & dsSession.Tables(0).Rows(i)(1) & ","
Next
sessionID = sessionID.Substring(0, sessionID.Length - 1)
classID = classID.Substring(0, classID.Length - 1)
'============Get Test names and Insert in table====================
Dim dsTestName As DataSet = DirectCast(cmdGetData("SELECT DISTINCT testmaster.test, testgrade.testOrder FROM (testmaster INNER JOIN testgrade ON testmaster.test = testgrade.testName) WHERE (testmaster.class_id IN (" & classID & ")) AND (testmaster.[session] IN (" & sessionID & ")) ORDER BY testgrade.testOrder"), DataSet)
If dsTestName.Tables(0).Rows.Count > 0 Then
For iTN = 0 To dsTestName.Tables(0).Rows.Count - 1
CollIndex = CollIndex + 1
cmdExecute("update tbTestHeading set R" & CollIndex & "='" & dsTestName.Tables(0).Rows(iTN)("test") & "' where tempID=1")
QryGetTot = QryGetTot & "R" & CollIndex & ","
Next
QryGetTot = "R" & CollIndex + 2 & "," & QryGetTot
End If
'=============================End Test Name=============================================
'======================Get Max Temp ID============================================
Dim MaxID As Integer = Convert.ToInt32(getMaxID("tempID", "tbTestHeading"))
For iSn = 0 To dsSession.Tables(0).Rows.Count - 1
MaxID = MaxID + 1
'==========Get year on based of Session and save===================
Dim dsYear As DataSet = DirectCast(cmdGetData("SELECT startdate,enddate FROM SessionMaster where srno=" & dsSession.Tables(0).Rows(iSn)("session")), DataSet)
Dim StartYear = Year(dsYear.Tables(0).Rows(0)("startdate"))
Dim EndYear = Year(dsYear.Tables(0).Rows(0)("enddate"))
Dim Session = StartYear & "-" & EndYear
cmdExecute("insert into tbTestHeading (tempID,sessionName) values (" & MaxID & ",'" & Session & "')")
SaveID = MaxID
TempIDTotal = TempIDTotal & MaxID & ","
'=====================End Year========================================
'===================Get Subject name of Current session========================
Dim dsSubjectName As DataSet = DirectCast(cmdGetData("SELECT DISTINCT Subject_master.shortName FROM ((testdetail INNER JOIN testmaster ON testdetail.srno = testmaster.Srno) INNER JOIN Subject_master ON testmaster.sub_id = Subject_master.srno) WHERE (testdetail.stcode =" & txtStudentCode.Text & ") AND (testmaster.[session] = '" & dsSession.Tables(0).Rows(iSn)("session") & "') "), DataSet)
For iSubN = 0 To dsSubjectName.Tables(0).Rows.Count - 1
MaxID = MaxID + 1
cmdExecute("insert into tbTestHeading (tempID,subjectName) values (" & MaxID & ",'" & dsSubjectName.Tables(0).Rows(iSubN)("shortName") & "')")
Next 'Subject Name For End
'======================End Subject Name====================
'===========Get Marks of Student in Particular Session====================
Dim dsMarks As DataSet = DirectCast(cmdGetData("SELECT testdetail.marks, testmaster.test, Subject_master.shortName, testmaster.class_id, testmaster.[section], testdetail.[max] FROM (((testdetail INNER JOIN testmaster ON testdetail.srno = testmaster.Srno) INNER JOIN Subject_master ON testmaster.sub_id = Subject_master.srno) INNER JOIN testgrade ON testmaster.test = testgrade.testName) WHERE (testdetail.stcode = " & txtStudentCode.Text & ") AND (testmaster.[session] = '" & dsSession.Tables(0).Rows(iSn)("session") & "') ORDER BY testgrade.testOrder, Subject_master.srno "), DataSet)
Dim MaxMarks As Integer = 0
'===========Get Maximum marks =======================================
Dim dsMax As DataSet = DirectCast(cmdGetData("SELECT DISTINCT testmaster.test, testmaster.[max] FROM (testmaster INNER JOIN testdetail ON testmaster.Srno = testdetail.srno) WHERE (testdetail.stcode =" & txtStudentCode.Text & ") AND (testmaster.[session] = '" & dsSession.Tables(0).Rows(iSn)("session") & "') AND (testmaster.[section] = '" & dsMarks.Tables(0).Rows(0)("section") & "') AND (testmaster.class_id =" & dsMarks.Tables(0).Rows(0)("class_id") & ")"), DataSet)
For iMax = 0 To dsMax.Tables(0).Rows.Count - 1