-2

以下のコードはエラーなしで動作しますが、更新値はデータベースに保存されません??? データベース値を更新する正しい方法???

Try

        da = New SqlDataAdapter("SELECT * FROM studentdetails where student_id= @id", myConn)
        da.SelectCommand.Parameters.AddWithValue("@id", txt_id.Text)
        da.Fill(dset, "studentdetails")

        If dset.Tables("studentdetails").Rows(0)("student_id") = Convert.ToInt32(txt_id.Text) Then
            dset.Tables("studentdetails").Rows(0)("student_name") = txt_name.Text
            dset.Tables("studentdetails").Rows(0)("student_branch") = txt_branch.Text
            dset.Tables("studentdetails").Rows(0)("student_class") = txt_class.Text
            MsgBox("Update Complete")
        Else
            MsgBox("Record not found")
        End If

    Catch ex As Exception
        MsgBox(ex.Message)
    Finally

        myConn.Close()
    End Try
4

2 に答える 2

1

データベースに何かを保存するには、次のような INSERT コマンドが必要です

Dim cmdInsert = "INSERT INTO studentdetails (student_id, student_name, " & _
                "student_branch, student_class) VALUES " & _
                "(@id, @name, @branch, @class)"
Dim cmd = new SqlCommand(cmdInsert,myConn) 
cmd.Parameters.AddWithValue("@id",Convert.ToInt32(txt_id.Text)(
cmd.Parameters.AddWithValue("@name", txt_name.Text)
cmd.Parameters.AddWithValue("@branch", txt_branch.Text)
cmd.Parameters.AddWithValue("@class", txt_class.Text)
Dim rowsInserted = cmd.ExecuteNonQuery()
if rowsInserted = 1 Then
   MsgBox("Record inserted")
Else
   MsgBox("Error inserting Record")
End If

もちろん、これはデータベースに新しいレコードを挿入しようとします。既存のレコードを更新するには、UPDATE コマンドが必要です。おそらく、さまざまな SQL コマンドを簡単に確認する方がよいでしょう。

于 2013-08-25T19:52:31.020 に答える