将组合框中的值插入SQL Server

时间:2017-07-14 04:42:45

标签: c# asp.net sql-server

在我的数据库中,我有两个表(EmployeeTeam)。 Team表有两列(IDTeamName),它在asp.net页面中显示为下拉列表。

<asp:DropDownList ID="team_id" runat="server" CssClass="form-control"></asp:DropDownList>

在我的asp.net页面中,我需要在employee表中插入一行,其中包含teamID

下面是设置团队组合框代码

private void SetTeamComboBox()
    {
        DataTable tableVariable = GetTeam();
        team_id.DataTextField = "TEAMNAME";
        team_id.DataValueField = "ID";
        team_id.DataSource = tableVariable;

        //MANUALLY ADD ROW
        DataRow dr = tableVariable.NewRow();
        dr["TEAMNAME"] = "Select TEAM";
        dr["ID"] = 0;
        tableVariable.Rows.InsertAt(dr, 0);
        team_id.SelectedIndex = 0;
        team_id.DataBind();
    }

public DataTable GetTeam()
    {
        SqlConnection oleconnectionVariable = new SqlConnection(conString);
        SqlCommand commandVariable = new SqlCommand();
        commandVariable.CommandText = "SELECT ID,TEAMNAME FROM TEAM";
        commandVariable.Connection = oleconnectionVariable;
        oleconnectionVariable.Open();
        SqlDataAdapter adapterVariable = new SqlDataAdapter(commandVariable);
        DataSet dataSet = new DataSet();
        adapterVariable.Fill(dataSet);

        adapterVariable.Dispose();
        commandVariable.Dispose();
        oleconnectionVariable.Dispose();
        return dataSet.Tables[0];//WE NEED TO GET THE DATATABLE  
    }

我需要插入团队的ID,但我在下一行收到错误。

commandVariable.Parameters.AddWithValue("@TeamID",Convert.ToInt32(team_id.SelectedValue));

团队ID始终为零(请参阅下面的调试图片)

Error image

1 个答案:

答案 0 :(得分:2)

我认为你在Page_Load()事件中调用SetTeamComboBox(),所以每次DropDownBox控件状态都改变了。回发中没有处理的问题。

解决方案:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            SetTeamComboBox();
        }
    }