1

SQL Server 2012データベースのデータを、ASP.Netで値を変更して取得した値で更新したいと思いますDetailsView。を使用してデータベースを更新したい

  • と呼ばれる強く型付けされたデータセットDataSetParentsDetails
  • TableAdapterと呼ばれるParentsDetailsTableAdapter
  • と呼ばれるDataTable ParentsDetails

これらは、DataSetDesignerを使用して作成されました。

これは、データベースに更新する量を計算するために使用される分離コードファイルのコードです。

Protected Sub DetailsViewDetails_ItemCommand(sender As Object, e As System.Web.UI.WebControls.DetailsViewCommandEventArgs)
  Dim dcmAmountToAdjust As Decimal
  Dim StrSqlStatement As String

  Select Case e.CommandName
    Case "Add"
    Case "Edit"
      dcmOriginalRegistrationFee = GetValueFromLabelRegistrationFee()
    Case "Delete"
    Case "Update"
      dcmNewRegistrationFee = GetValueFromTextBoxRegistrationFee()
      dcmAmountToAdjust = dcmNewRegistrationFee - dcmOriginalRegistrationFee
      ' Update the tuition balance in the parent's data.
      '-------------------------------------------------
      StrSqlStatement =
        "Update Students " & _
        "Set RegistrationCode = RegistrationCode + @AmountToAdjust " & _
        "Where StudentID = @ID"
      ' Code to update the database goes here.
      '---------------------------------------
  End Select
End Sub

これは以前にも何度も尋ねられたと思いますが、クエリを使用する方法についての良い例を見つけることができません:StrSqlStatement強く型付けされたDataSetを介してデータベースを更新する。

4

1 に答える 1

5

まず、接続文字列が必要です。接続文字列をweb.configファイルに保存することをお勧めします。

<connectionStrings>
  <add name="MyConnectionString" connectionString="Data Source=putYourServerAndInstanceNameHere;Initial Catalog=putYourDatabaseNameHere;User ID=putYourSqlUsernameHere;Password=password" providerName="System.Data.SqlClient" />
</connectionStrings>

これはルート<configuration>要素の直接の子です。接続文字列の詳細については、http://www.connectionstrings.comにアクセスしてください。

次に、コード ビハインドにいくつかのインポートが必要になります。まだインポートしていない場合は、プロジェクトへの参照として追加する必要があります。

Import System.Data
Import System.Data.SqlClient

次に、データベースに接続してコマンドを実行します。より安全なパラメーターを使用します。

'build the connection object using the string from the web.config file
Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("MyConnectionString").ConnectionString)
  'build the command object specifying the command text and the connection to use, conn
  Using cmd As New SqlCommand("UPDATE Students SET RegistrationCode = RegistrationCode + @AmountToAdjust WHERE StudentID = @ID", conn)
    'add the parameters needed by the command
    cmd.Parameters.AddWithValue("@AmountToAdjust", amountToAdjust)
    cmd.Parameters.AddWithValue("@ID", studentID)
    'try to open the connection and execute the statement
    Try
      conn.Open()
      cmd.ExecuteNonQuery()
    Catch ex As Exception
      'handle the exception here
    End Try
  End Using
End Using

conn.Close()ここで使用する必要はないことにUsing注意してください (接続がまだ開いている場合は、SqlConnection の Dispose メソッドが接続を閉じます)。

于 2012-11-14T19:46:11.980 に答える