|
分類:[.NET 全般]
いつもお世話になっております。
テキストボックス(TextMode="Date")へデータベースの値をセットしたのですが、表示されません。
【環境】
・Visual Studio Community 2019 Version 16.10.0
・.NET Framework Version 4.8
・Windows10 Pro 64bit
・データベース Microsoft Access 2010 対象日付フィールドのフォーマットは日付形式
【aspx】
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" BackColor="#0033CC" ForeColor="White" Text=" − コンタクト履歴登録 −"></asp:Label>
</div>
<table class="auto-style2">
<tr>
<td class="auto-style1" style="background-color: #CCFFFF">名刺データ名</td>
<td>
<asp:Label ID="LblName" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td class="auto-style1" style="background-color: #CCFFFF">コンタクト日付 *</td>
<td>
<asp:TextBox ID="TxtDate" runat="server" TextMode="Date"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="日付は必須入力です。" ForeColor="Red" ControlToValidate="TxtDate" ></asp:RequiredFieldValidator>
<asp:TextBox ID="TxtDate2" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style1" style="background-color: #CCFFFF">入力者</td>
<td>
<asp:Label ID="LblInName" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td class="auto-style3" style="background-color: #CCFFFF">内容 *</td>
<td class="auto-style4">
<asp:TextBox ID="TxtMemo" runat="server" Height="126px" TextMode="MultiLine" Width="397px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="内容は必須です。" ForeColor="Red" ControlToValidate="TxtMemo"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="auto-style1" style="background-color: #CCFFFF">公開区分 *</td>
<td>
<asp:RadioButton ID="RadioYes" runat="server" Checked="True" GroupName="RadioYesNo" Text="公開する" />
<asp:RadioButton ID="RadioNo" runat="server" GroupName="RadioYesNo" Text="非公開" />
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Button ID="BtnAdd" runat="server" Text="登録" Width="150px" />
<asp:Button ID="BtnCancel" runat="server" Text="登録中止" Width="150px" CausesValidation="False" />
</td>
</tr>
</table>
</form>
</body>
【aspx.vb】
(一部略)
Dim strSQL As String
strSQL = ""
strSQL = "SELECT T_RIREKI.*, T_MEISI.PERSONAL_NAME "
strSQL = strSQL & "FROM T_RIREKI LEFT JOIN T_MEISI ON T_RIREKI.bcno = T_MEISI.ID "
strSQL = strSQL & " WHERE dno = " & wkdno
'履歴データのDataSet
Dim da As New OleDbDataAdapter(strSQL, con)
Dim dstbl As New DataSet
con.Open()
da.Fill(dstbl, "RIREKI_DT")
Dim dt As DataTable = dstbl.Tables("RIREKI_DT")
'(履歴データをページ項目にセット)----------------------------------------
Dim dr As DataRow = dt.Rows(0)
LblName.Text = dr("PERSONAL_NAME")
TxtDate.Text = dr("inpdate")
TxtDate2.Text = dr("inpdate")
LblInName.Text = dr("inpname")
(以降略)
【状況】
データベースから取得したtxtdate以外は期待通りに表示されました。
またTxtdate2は比較の為に設定したシングルラインのテキストボックスです。
(表示例)
TxtDate 「 年/ 月/日 ■」(■はカレンダーアイコン)
TxtDate2 「2021/05/15」
入力を考えると日付形式のテキストボックスの方が利便性が良いのですが・・・。
【質問】
1.テキストボックス(TextMode="Date")にデータベースの日付形式の項目をセットする方法を教えてください。
下記は試しましたが結果は同じでした。
TxtDate.Text = Format(dr("inpdate"),"yyyy/MM/dd")
TxtDate.Text = dr("inpdate")、Tostring("yyyy-MM-dd")
2.VS2005の頃はjavascriptでカレンダーを表示してましたが、VS2019では標準でカレンダーを使えるので出来るだけ
標準搭載機能を使いたいと思いますが、皆様はどうされていますか?
アドバイスの程よろしくお願いいたします。
|