数据库未从用户输入正确更新

时间:2016-02-10 13:05:20

标签: c# sql database

我有一个带有日历的页面,用户可以在其中添加活动。除了一位用户可以选择事件/课程的语言之外,它一切正常。它正在数据库中更新,但似乎只将语言值的第一个字符添加到数据库中,因此不显示语言。因此,例如,如果用户选择'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);
        }

0 个答案:

没有答案