私はtimespan関数を使用して日数を計算していますが、この値はテキストボックスに追加され、データベースに保存されます。asp.net timespan
私は最近、半日としてラジオボタンを追加しました。チェックされていれば、1日ではなく0.5日の休日が追加されます。これは、保存する前にテキストボックスに表示されたときに正しく動作するようです。ただし、データベースを実際に保存して更新すると、テキストボックスに示すように、0.5ではなく1の値が表示されます。
このフィールドのデータベースのフィールドタイプは元々 'int'に設定されていましたが、半日を追加すると保存されませんでした。小数点以下を保存しようとしていたため、このフィールドタイプを 'decimal'これがより適切かもしれないと思ったからです。これが正しいのか、何か違うはずですか?
私はそれがテキストボックスに指定した値を保存していない理由を把握するように見えることができない...任意の提案
Private Sub btnHNoDays_Click(sender As Object, e As System.EventArgs) Handles btnHNoDays.Click
'declare dates
Dim dtStart As Date = txtHStart_Date.Text
Dim dtEnd As Date = txtHEnd_Date.Text
'timespan function used to minus one date to another and produce a value
Dim ts As TimeSpan = (dtEnd - dtStart)
If RadioButton1.Checked Then
ts = (dtEnd - dtStart) - TimeSpan.FromDays(0.5)
Else
ts = (dtEnd - dtStart)
End If
' the value is set to to textbox.
txtNoofDays.Text = ts.TotalDays()
' the today days value
Console.WriteLine(ts.TotalDays)
End Sub
Protected Sub btnHRequestSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnHRequestSave.Click
'collect data
Dim Sdate = txtHStart_Date.Text
Dim Edate = txtHEnd_Date.Text
Dim NoofDays = txtNoofDays.Text
Dim notes = TxtHRequestNotes.Text
Dim username = lblHolidayRequestLIU.Text
'define connection
Dim HRequestConnection As New SqlConnection
HRequestConnection.ConnectionString = HolidayRequestSqlDataSource.ConnectionString
'create command
Dim HRequestInsert As New SqlCommand("Insert into HolidayRequests (username, RequestDateStart, RequestDateEnd, RequestTotalDays, RequestNotes) VALUES (@username, @Sdate, @Edate, @NoofDays, @notes)", HRequestConnection)
'define parameters
HRequestInsert.Parameters.Add("username", SqlDbType.NVarChar, 20).Value = lblHolidayRequestLIU.Text
HRequestInsert.Parameters.Add("Sdate", SqlDbType.Date).Value = txtHStart_Date.Text
HRequestInsert.Parameters.Add("Edate", SqlDbType.Date).Value = txtHEnd_Date.Text
HRequestInsert.Parameters.Add("NoofDays", SqlDbType.Decimal).Value = txtNoofDays.Text
HRequestInsert.Parameters.Add("notes", SqlDbType.NVarChar).Value = TxtHRequestNotes.Text
' execute commands
HRequestConnection.Open()
HRequestInsert.ExecuteNonQuery()
lblHolRequestResponse.Text = "Your holidays request has been saved!
End Sub
Thanks..thisは、しかし、今ちょうど例2のためにした値は2.0です。これらは単に1つの数値として表示することはできません:)働いて、小数点を必要とする値のみが表示されるか、すべてまたは何も表示されません。 – user1055487
これは2.0としてSQLに格納されます。元の値をデータベースに書き出している間は、好きな方法でTextBoxのユーザーに提示することができます。 –