ドロップダウン リストを空白のままにしておくと、次のエラーが発生します。
「文字列は有効な DateTime として認識されませんでした」
私の .aspx は以下のようになります。
<asp:DropDownList ID="cboDay" runat="server" Width="55px" Height="32px" AppendDataBoundItems="true">
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="cboMonth" runat="server" Width="80px" Height="30px" AppendDataBoundItems="true">
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="cboYear" runat="server" Width="65px" Height="30px" AppendDataBoundItems="true">
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
コードビハインド:
protected void btnSave_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=GATE-PC\\SQLEXPRESS;Initial Catalog=dbProfile;Integrated Security=True");
SqlCommand cmd = new SqlCommand("qryINSERTprof", con);
cmd.CommandType = System.Data.CommandType.Text;
String str = cboDay.SelectedItem.Text + "/" + cboMonth.SelectedItem.Text + "/" + cboYear.SelectedItem.Text;
lbltxtage.Text = str;
DateTime dt = Convert.ToDateTime(str);
string bdate = lbltxtage.Text;
DateTime dts = DateTime.Parse(bdate);
TimeSpan d = DateTime.Now.Subtract(dts);
double years = d.TotalDays / 365;
int months = (int)((years - (int)years) * 12);
txtage.Text = ((int)years).ToString();
Response.Write(dt.ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture));
cmd.Parameters.AddWithValue("@Lname", txtlname.Text);
cmd.Parameters.AddWithValue("@Mname", txtmname.Text);
cmd.Parameters.AddWithValue("@Fname", txtfname.Text);
cmd.Parameters.AddWithValue("@BirthDate", lbltxtage.Text);
cmd.Parameters.AddWithValue("@age", txtage.Text);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
con.Open();
cmd.ExecuteNonQuery();
}
どんな助けでも大歓迎です。前もって感謝します。