【问题标题】:I am not able to insert data into a SQL Server database我无法将数据插入 SQL Server 数据库
【发布时间】:2017-03-17 14:20:11
【问题描述】:

我在将数据插入我的 SQL Server 数据库时遇到问题。我正在研究学校管理系统。我有 2 个用户(管理员和员工)。管理员为员工创建/设置所有基本需求。

在这里,管理员正在添加课程详细信息。因此,第一步是在STDMS_ClassDetails 数据库中添加一个类、部分和强度。稍后,主题字段将被更新。

现在,添加新类的流程如下:

  1. 在创建类选项卡下,管理员设置类的范围。例如:1 级到 10 级。

  2. 然后管理员选择如何添加部分,类的强度。

    2.i.如果他选择1by1选项,那么他需要选择每个班级,班级和班级强度。

    2.ii。如果他选择分组选项,那么上述所有班级将立即具有相同的班级数量和班级强度。

这是我的数据库。

&这是我的前端。

没有错误消息,但是数据库没有更新。所以,这段代码中一定有我遗漏的东西。请帮助我纠正并使此代码正常工作。

我的代码如下所示:

Private Sub btnCCSave_Click(sender As Object, e As EventArgs) Handles btnCCSave.Click
    If MsgBox("You are going to add new classes into your database." + vbCrLf + vbCrLf + "Are you sure?", vbInformation + vbYesNo, "Add new classes.") = vbYes Then
        If rb_1by1.Checked = True Then
            con.Open()
            Try
                Using cmd As New SqlCommand("INSERT INTO STDMS_ClassDetails(Class_ID, Section, Class_Strength) VALUES(@d1, @d2, @d3)", con)
                    With cmd
                        For i As Integer = 1 To updownTotalSections.Value
                            .Parameters.AddWithValue("@d1", Integer.Parse(cbCCClass.Text))
                            Select Case i
                                Case 1
                                    .Parameters.AddWithValue("@d2", "A")
                                    Exit Select
                                Case 2
                                    .Parameters.AddWithValue("@d2", "B")
                                    Exit Select
                                Case 3
                                    .Parameters.AddWithValue("@d2", "C")
                                    Exit Select
                                Case 4
                                    .Parameters.AddWithValue("@d2", "D")
                                    Exit Select
                                Case 5
                                    .Parameters.AddWithValue("@d2", "E")
                                    Exit Select
                            End Select
                            .Parameters.AddWithValue("@d3", updownTotalStrength.Value)
                        Next
                    End With
                End Using
                con.Close()
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        ElseIf rb_Group.Checked = True Then
            Try
                MsgBox("try")
                For i As Integer = updownLB.Value To updownUP.Value
                    MsgBox("for i = " + i.ToString)
                    For j As Integer = 1 To updownTotalSections.Value
                        MsgBox("for j = " + j.ToString)
                        con.Open()
                        MsgBox("con open")
                        Using cmd As New SqlCommand("INSERT INTO STDMS_ClassDetails(Class_ID, Section, Class_Strength) VALUES(@d1, @d2, @d3)", con)
                            With cmd
                                MsgBox("Ready query and cmd")
                                .Parameters.AddWithValue("@d1", i)
                                MsgBox("added first col")
                                Select Case j
                                    Case 1
                                        MsgBox("case1")
                                        .Parameters.AddWithValue("@d2", "A")
                                        MsgBox("added1")
                                        Exit Select
                                    Case 2
                                        MsgBox("case2")
                                        .Parameters.AddWithValue("@d2", "B")
                                        MsgBox("added2")
                                        Exit Select
                                    Case 3
                                        MsgBox("case3")
                                        .Parameters.AddWithValue("@d2", "C")
                                        MsgBox("added3")
                                        Exit Select
                                    Case 4
                                        MsgBox("case4")
                                        .Parameters.AddWithValue("@d2", "D")
                                        MsgBox("added4")
                                        Exit Select
                                    Case 5
                                        MsgBox("case5")
                                        .Parameters.AddWithValue("@d2", "E")
                                        MsgBox("added5")
                                        Exit Select
                                End Select
                                MsgBox("out of select")
                                .Parameters.AddWithValue("@d3", updownTotalStrength.Value)
                                MsgBox("added strength")
                                con.Close()
                                MsgBox("closed")
                            End With
                        End Using
                        MsgBox("end")

                    Next
                Next

            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        End If
      End If
   End Sub
End Class

【问题讨论】:

  • 你从不执行查询
  • 哈哈...我的错...谢谢
  • 你需要执行你的命令。只需在循环中添加 cmd.ExecuteNonQuery(最后)。
  • 术语:您所说的“数据库”实际上在 SQL DBMS 中称为“”。数据库包含您的表(以及视图、存储过程和其他 SQL 对象)。

标签: sql sql-server vb.net


【解决方案1】:

只需在 End Using 行之前添加以下命令

 cmd.ExecuteNonQuery()

因为你构建了你的命令但你没有执行它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    相关资源
    最近更新 更多