トップ回答者
DropDownList生年月日を「NULL」でDB格納できませんか?

質問
-
FormViewで顧客情報を登録するWebフォームを開発しております。
よくある「生年月日」のDropDownList項目があるのですが、【<asp:ListItem Value="">未選択</asp:ListItem>】
でDBに登録しようとすると「0」がDBに格納されます。DBの型はINT型です。
(もしかしたらですが「NULL」は自動的に「0」にキャストされてるのではないでしょうか。)ただ「0」という日付は存在しないので気持ちが悪いです。
「0」ではなく「NULL」でDBに格納したいのです。【<asp:ListItem Value="NULL">未選択</asp:ListItem>】
上記のようにしてみたら、
「nvarchar の値 'null' をデータ型intに変換できませんでした。」とエラーが表示されます。どうしたらよいでしょうか?
ご教授頂けますでしょうか。------------------------------------------------------
<tr><th>【生年月日】日</th>
<td>
<asp:DropDownList ID="BirthDateDropDownList"
runat="server"
SelectedValue='<%# Bind("BirthDate")%>' >
<asp:ListItem Value="">未選択</asp:ListItem>
<asp:ListItem Value="1">1</asp:ListItem>
<asp:ListItem Value="2">2</asp:ListItem>
<asp:ListItem Value="3">3</asp:ListItem>
<asp:ListItem Value="4">4</asp:ListItem>
<asp:ListItem Value="5">5</asp:ListItem>
<asp:ListItem Value="6">6</asp:ListItem>
<asp:ListItem Value="7">7</asp:ListItem>
<asp:ListItem Value="8">8</asp:ListItem>
<asp:ListItem Value="9">9</asp:ListItem>
<asp:ListItem Value="10">10</asp:ListItem>
<asp:ListItem Value="11">11</asp:ListItem>
<asp:ListItem Value="12">12</asp:ListItem>
<asp:ListItem Value="13">13</asp:ListItem>
<asp:ListItem Value="14">14</asp:ListItem>
<asp:ListItem Value="15">15</asp:ListItem>
<asp:ListItem Value="16">16</asp:ListItem>
<asp:ListItem Value="17">17</asp:ListItem>
<asp:ListItem Value="18">18</asp:ListItem>
<asp:ListItem Value="19">19</asp:ListItem>
<asp:ListItem Value="20">20</asp:ListItem>
<asp:ListItem Value="21">21</asp:ListItem>
<asp:ListItem Value="22">22</asp:ListItem>
<asp:ListItem Value="23">23</asp:ListItem>
<asp:ListItem Value="24">24</asp:ListItem>
<asp:ListItem Value="25">25</asp:ListItem>
<asp:ListItem Value="26">26</asp:ListItem>
<asp:ListItem Value="27">27</asp:ListItem>
<asp:ListItem Value="28">28</asp:ListItem>
<asp:ListItem Value="29">29</asp:ListItem>
<asp:ListItem Value="30">30</asp:ListItem>
<asp:ListItem Value="31">31</asp:ListItem>
</asp:DropDownList>
------------------------------------------------------
----
▼開発環境
Webアプリケーションです。
.Net Flamework4.0
C#
Visual Studio 2010
SQL Server 2008 R2
回答
-
> SelectedValue='<%# Bind("BirthDate")%>' >
> <asp:ListItem Value="">未選択</asp:ListItem>BirthDate 列は NULL 許可になってますか?
Parameter の ConvertEmptyStringToNull を false にするとか(デフ
ォルトで true)普通でないことをしてませんか?NULL 許可になっていて(不許可の場合は試してないので不明)、デ
ータバインドコントロールに SqlDataSource を使ってウィザードベー
スで(即ちすべてデフォルト設定で)作ったのであれば、空白文字 ""
は自動的に NULL に変換されて DB の当該フィールドに格納されるはず
です。- 編集済み SurferOnWww 2012年6月26日 14:30 誤字訂正
- 回答としてマーク ミルズ 2012年6月26日 15:29
すべての返信
-
> SelectedValue='<%# Bind("BirthDate")%>' >
> <asp:ListItem Value="">未選択</asp:ListItem>BirthDate 列は NULL 許可になってますか?
Parameter の ConvertEmptyStringToNull を false にするとか(デフ
ォルトで true)普通でないことをしてませんか?NULL 許可になっていて(不許可の場合は試してないので不明)、デ
ータバインドコントロールに SqlDataSource を使ってウィザードベー
スで(即ちすべてデフォルト設定で)作ったのであれば、空白文字 ""
は自動的に NULL に変換されて DB の当該フィールドに格納されるはず
です。- 編集済み SurferOnWww 2012年6月26日 14:30 誤字訂正
- 回答としてマーク ミルズ 2012年6月26日 15:29