我有一个带有日历的页面,用户可以在其中添加活动。除了一位用户可以选择事件/课程的语言之外,它一切正常。它正在数据库中更新,但似乎只将语言值的第一个字符添加到数据库中,因此不显示语言。因此,例如,如果用户选择'en',则仅将'e'添加到数据库,或者仅使用'fr'添加'f'。 这是我的代码:
the mark up:
<asp:DropDownList Visible="false" class="test-select" ID="ddlLang" runat="server" AutoPostBack="true" onselectedindexchanged="ddlLang_SelectedIndexChanged" >
<asp:ListItem Text="Select a language" Value="0"> </asp:ListItem>
<asp:ListItem Text="English" Value="en"> </asp:ListItem>
<asp:ListItem Text="French" Value ="fr"></asp:ListItem>
</asp:DropDownList>
在后面的代码中:
protected void ddlLang_SelectedIndexChanged(object sender, EventArgs e)
{
clearForm();
string UL_ID = ddlLang.SelectedItem.Value;
if (UL_ID != "0")
{
ddlTest1.Visible = true;
loadTest1DLL(ddlTest2.SelectedItem.Value, UL_ID, 1);
}
else
{
ddlTest1.SelectedValue = "0";
ddlTest1.Visible = false;
}
}
private int AddDate(string[] strArray)
{
string strQuery = "spInsertDate";
int iCourseID = 0;
using (SqlConnection oConn = new SqlConnection(.......)
{
oConn.Open();
using (SqlCommand oCmd = new SqlCommand(strQuery, oConn))
{
oCmd.CommandType = CommandType.StoredProcedure;
oCmd.Parameters.Add(new SqlParameter("@Title", SqlDbType.NVarChar, 150));
oCmd.Parameters.Add(new SqlParameter("@nfo_ID", SqlDbType.Int, 4));
oCmd.Parameters.Add(new SqlParameter("@Location_ID", SqlDbType.Int, 4));
oCmd.Parameters.Add(new SqlParameter("@Language", SqlDbType.NVarChar));
oCmd.Parameters.Add(new SqlParameter("@STARTDATE", SqlDbType.DateTime));
oCmd.Parameters.Add(new SqlParameter("@ENDDATE", SqlDbType.DateTime));
oCmd.Parameters["@Title"].Value = strArray[0];
oCmd.Parameters["@Info_ID"].Value = strArray[1];
oCmd.Parameters["@Location_ID"].Value = strArray[2];
oCmd.Parameters["@Language"].Value = strArray[6];
oCmd.Parameters["@STARTDATE"].Value = Convert.ToDateTime(strArray[3], dtFormat);
oCmd.Parameters["@ENDDATE"].Value = Convert.ToDateTime(strArray[4], dtFormat);
oCmd.ExecuteNonQuery();
// Response.Write(DateTime.Parse(strArray[9], dtFormat));
iCourseCourseID = (int)oCmd.Parameters["@UCSL_ID"].Value;
}
}
return iCourseID;
}
private void UpdateDate(string[] strArray)
{
string strQuery = "spUpdateDate";
using (SqlConnection oConn = new SqlConnection(.........)
{
oConn.Open();
using (SqlCommand oCmd = new SqlCommand(strQuery, oConn))
{
oCmd.CommandType = CommandType.StoredProcedure;
oCmd.Parameters.Add(new SqlParameter("@STARTDATE", SqlDbType.DateTime));
oCmd.Parameters.Add(new SqlParameter("@ENDDATE", SqlDbType.DateTime));
oCmd.Parameters.Add(new SqlParameter("@Language", SqlDbType.NVarChar));
oCmd.Parameters["@STARTDATE"].Value = Convert.ToDateTime(strArray[0], dtFormat);
oCmd.Parameters["@ENDDATE"].Value = Convert.ToDateTime(strArray[1], dtFormat);
oCmd.Parameters["@Location_ID"].Value = strArray[3];
oCmd.Parameters["@Language"].Value = strArray[5];
oCmd.ExecuteNonQuery();
}
}
}
有人能发现我错过了什么以及为什么会这样吗?谢谢!
更新
int iCheckCourseModule = 0;
if (iCheckCourseModule == 0)
{
int iDateId = AddDate(strArray);
lblMsgBox.CssClass = "sucessLabel";
lblMsgBox.Text = "Course Date Created Sucessfully";
clearForm();
loadCourseDatesInfo(strUCSID);
}