在我的数据库中,我有两个表(Employee
和Team
)。 Team
表有两列(ID
,TeamName
),它在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始终为零(请参阅下面的调试图片)
答案 0 :(得分:2)
我认为你在Page_Load()事件中调用SetTeamComboBox(),所以每次DropDownBox控件状态都改变了。回发中没有处理的问题。
解决方案:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SetTeamComboBox();
}
}