簡體   English   中英

在VB.NET中使用SQL DELETE查詢

[英]Using SQL DELETE query with VB.NET

我已經用VB.NET和SQL Server數據庫表一起編寫了一個程序來記錄學生的評估成績。 SQL表(“標記”)詳細信息列,其中顯示“學生ID”,“評估”(例如,數學,科學,英語)和“標記”。 下面顯示的子例程旨在允許用戶刪除特定的評估,並且通過使用嵌套在條件if / elseif子句中的DELETE語句,我設法實現了這一目的,程序可以正常運行。 但是,作為編程的一個相對較新的對象,我意識到采用好的做法,並在可能的情況下避免使用重復的代碼,在我看來,如果在if / elseif子句中可以清楚地看到這一點。 在考慮必須處理15個或更多學生評估的可能性時,這個問題變得越來越重要。 我的問題是,是否可以將SQL查詢語句修改為合並“評估”變量,而不是在if / elseif子句中顯式鍵入每個條件? 我試圖以與使用變量'id'來標識SQL查詢語句中的'Student_ID'相同的方式執行此操作,但是這返回了一條錯誤,指出例如Maths不是一列。 希望我已經充分解釋了這一點,並且一切都說得通。 與往常一樣,任何想法都值得贊賞。

謝謝,邁克

   Console.WriteLine("")
    Console.Write("Enter assessment to be deleted : ")
    Dim assessment_name As String = Console.ReadLine

    If assessment_name = "Maths" Then
        query = ("DELETE FROM Marks WHERE Assessment='Maths' AND Student_ID=" & id)
    ElseIf assessment_name = "English" Then
        query = ("DELETE FROM Marks WHERE Assessment='English' AND Student_ID=" & id)
    ElseIf assessment_name = "Science" Then
        query = ("DELETE FROM Marks WHERE Assessment='Science' AND Student_ID=" & id)
    ElseIf assessment_name = "Art" Then
        query = ("DELETE FROM Marks WHERE Assessment='Art' AND Student_ID=" & id)
    End If

    command = New SqlCommand(query, connection)
    command.ExecuteNonQuery()

我認為您可以執行以下操作。

您可以使用參數輕松創建查詢。

您可以使用USING塊輕松處置

Public Sub DeleteNote(ByVal Assessement As String, ByVal Studentid As Integer)
    'Using statement for easy dispose
    Using connection As New SqlConnection(connectionString), _
          command As New SqlCommand("DELETE FROM Marks WHERE Assessment=@Assessement AND Student_ID=@Studentid", connection)

        'Add parameters
        command.Parameters.AddWithValue("@Assessement", Assessement)
        command.Parameters.AddWithValue("@Studentid", Studentid)

        'Open the connection
        connection.Open()
        'Execute query
        Using reader As SqlDataReader = command.ExecuteReader()
            While reader.Read()
                'Read result of query
                Console.WriteLine(String.Format("{0}, {1}",
                     reader(0), reader(1)))
            End While
        End Using
    End Using
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM