SQL データベース (1 列) から情報を取得する 3 つのドロップダウンがあります。ユーザーが最初のドロップダウンから WorkShopName を選択すると、2 番目のドロップダウンに利用可能な日付が表示され、日付を選択すると、ユーザーは 3 番目のドロップダウンから場所を選択できます。選択した情報をドロップダウンから SQL データベースの別の列に挿入しようとしています。ボタン登録をクリックすると、「文字列から日付および/または時刻を変換するときに変換に失敗しました」と表示されます。日付ドロップダウンの選択値の代わりに DateTime.Now を挿入しようとしましたが、エラーは同じです。誰でも助けることができますか?ありがとう
ドロップダウンは次のとおりです。
<asp:Label runat="server"
Text="Please select work shop you would like to register for:"></asp:Label>
</td>
<td>
<asp:DropDownList ID="ddlWorkShopName" AutoPostBack="true" runat="server"
DataSourceID="workshopName" DataTextField="WorkshopName"
DataValueField="WorkshopName">
</asp:DropDownList>
<asp:SqlDataSource ID="workshopName" runat="server"
ConnectionString="<%$ ConnectionStrings:WildLife_EducationConnectionString %>"
SelectCommand="SELECT DISTINCT [WorkshopName] FROM [tblWorkshop]">
</asp:SqlDataSource>
</td>
</tr>
<tr>
<td>
<asp:Label ID = "lblChoseWDate" runat="server" Text="Please chose workshop date:"></asp:Label>
</td>
<td>
<asp:DropDownList ID="ddlChoseWDate" DataTextFormatString="{0:yyyy-MM-dd}"
AutoPostBack="True" runat="server" DataSourceID="WorkshopDate2"
DataTextField="WorkshopBeginingDate" DataValueField="WorkshopBeginingDate">
</asp:DropDownList>
<asp:SqlDataSource ID="WorkshopDate2" runat="server"
ConnectionString="<%$ ConnectionStrings:WildLife_EducationConnectionString %>"
SelectCommand="SELECT DISTINCT ([WorkshopBeginingDate]) FROM [tblWorkshop] WHERE ([WorkshopName] = @WorkshopName)">
<SelectParameters>
<asp:ControlParameter ControlID="ddlWorkShopName" Name="WorkshopName"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblChoseWLoc" runat="server" Text="Please chose workshop location:"></asp:Label>
</td>
<td>
<asp:DropDownList ID="ddlChoseWorkShopLoc" runat="server"
DataSourceID="WorkshopLocation2" DataTextField="WorkshopLocation"
DataValueField="WorkshopLocation">
</asp:DropDownList>
<asp:SqlDataSource ID="WorkshopLocation2" runat="server"
ConnectionString="<%$ ConnectionStrings:WildLife_EducationConnectionString %>"
SelectCommand="SELECT [WorkshopLocation] FROM [tblWorkshop] WHERE (([WorkshopBeginingDate] = @WorkshopBeginingDate) AND ([WorkshopName] = @WorkshopName))">
<SelectParameters>
<asp:ControlParameter ControlID="ddlChoseWDate" Type="String"
Name="WorkshopBeginingDate" PropertyName="SelectedValue" />
<asp:ControlParameter ControlID="ddlWorkShopName" Name="WorkshopName"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
</td>
</tr>
<td>
<asp:Button ID="btnRegister" runat="server" onclick="btnRegister_Click"
Text="Register" />
</td>
ボタン レジスタのコード ビハインド:
SqlParameter workshopDate = new SqlParameter("@WorkshopDate", SqlDbType.DateTime);
workshopDate.Value = ddlChoseWDate.SelectedValue;
using (SqlConnection conn2 = new SqlConnection(@"Data Source=CIS489_3\WILDLIFE;Initial Catalog=WildLife_Education;Integrated Security=True;"))
{
SqlCommand CmdSql2 = new SqlCommand
("INSERT INTO [tblUserWorkshop] ([UserID],[WorkshopName],[WorkshopDate],[WorkshopLocation]) VALUES (@WorkshopName, @WorkshopDate, @WorkshopLocation, @UserID)", conn2);
conn2.Open();
CmdSql2.Parameters.AddWithValue("@UserID", userId.ToString());
CmdSql2.Parameters.AddWithValue("@WorkshopName", ddlWorkShopName.SelectedValue);
CmdSql2.Parameters.AddWithValue("@WorkshopDate",workshopDate.Value);
CmdSql2.Parameters.AddWithValue("@WorkshopLocation", ddlChoseWorkShopLoc.SelectedValue);
CmdSql2.ExecuteNonQuery();
conn2.Close();