C# 获取下拉列表的索引值在连接的数据库中始终存储为0。此外,我在html源代码中启用了自动回发

C# 获取下拉列表的索引值在连接的数据库中始终存储为0。此外,我在html源代码中启用了自动回发,c#,asp.net,C#,Asp.net,有包括我的C代码。请帮助我完成任务 namespace WebApplication1 { public partial class Project1 : System.Web.UI.Page { OracleConnection con = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TEST"].ToString()); st

有包括我的C代码。请帮助我完成任务

namespace WebApplication1
{
    public partial class Project1 : System.Web.UI.Page
    {
        OracleConnection con = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TEST"].ToString());
        string str;
        int compId;
        protected void Page_Load(object sender, EventArgs e)
        {
           // calProjectDate.Visible = false;
            if (!this.IsPostBack)
            {
                OracleConnection con = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TEST"].ToString());
                con.Open();
                OracleCommand cmd = con.CreateCommand();
                cmd.CommandText = " Select * FROM COMPANY";
                cmd.Connection = con;

                DataTable dt = new DataTable();
                dt.Load(cmd.ExecuteReader());

                ddlCompanyName.DataSource = dt;
                ddlCompanyName.DataTextField = "COMPANYNAME";
                ddlCompanyName.DataValueField = "COMPANYID";
                ddlCompanyName.DataBind();
                ddlCompanyName.Items.Insert(0, new ListItem("--Select Name--"));
                con.Close();
            }
        }
        protected void btnShowCalendar_Click(object sender, ImageClickEventArgs e)
        {
            calProjectDate.Visible = true;
        }

        protected void calDateofBirth_SelectionChanged(object sender, EventArgs e)
        {
            txtProjectDate.Text = calProjectDate.SelectedDate.ToShortDateString();

            calProjectDate.Visible = false;
        }
        protected void calProjectDate_SelectionChanged(object sender, EventArgs e)
        {
            txtProjectDate.Text = calProjectDate.SelectedDate.ToShortDateString();
        }

        protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                con.Open();
                OracleCommand cmd = con.CreateCommand();

                str = ddlCompanyName.SelectedItem.Text;
                //int value = ddlCompanyName.DataValueField.OfType.s;


               // int selectedradioValue = this.RblGender.TabIndex;
              //  int selectedCompanyValue = this.ddlCompanyName.TabIndex;
                cmd.CommandText = "INSERT INTO CMPPOJECT(PROJECTNAME,DESCRIPTION,COMPANY,WEBSITEURL,COMPLETEDIN,STARTEDIN)VALUES('" + txtProjectName.Text + "','" + txtDescription.Text + "','" + compId + "','" + txtWebsiteUrl.Text + "','" + cbProjectCompleted.Text + "','" + txtProjectDate.Text + "')";
                cmd.ExecuteNonQuery();


            }
            catch(Exception ex)
            {
                 Response.Write("<script>alert('Sorry,some error occured! Please try again!')</script>");
        }
            finally
            {
                con.Close();
                Response.Write("is it coming");
            }
      }
        protected void ddlCompanyName_SelectedIndexChanged(object sender, EventArgs e)
        {
             compId = ddlCompanyName.SelectedIndex;
        }


    }
}
compId始终为0,因为每次有新的回发请求时,compId都会初始化,默认值为0

您可以直接使用dropdownlist ddlCompanyName的值。SelectedValue:


为什么使用函数ddlCompanyName\u SelectedIndexChanged?compId=ddlCompanyName.SelectedIndex;这条线。。。。你想得到什么?你想得到下拉索引吗?你只要去掉selectedIndexchanged事件并尝试运行代码Thanku…非常感谢..它起作用了。。。
cmd.CommandText = "INSERT INTO CMPPOJECT(PROJECTNAME,DESCRIPTION,COMPANY,WEBSITEURL,COMPLETEDIN,STARTEDIN)VALUES('" + txtProjectName.Text + "','" + txtDescription.Text + "','" + ddlCompanyName.SelectedValue + "','" + txtWebsiteUrl.Text + "','" + cbProjectCompleted.Text + "','" + txtProjectDate.Text + "')";