【发布时间】:2017-04-10 14:14:00
【问题描述】:
免责声明 - 是的,我用谷歌搜索了,显然我没有找到解决方案。
Webform、ASP.NET、SQL、无 sqldatasource - 所有代码隐藏。
好的,看来我误解了我的应用程序出了什么问题。
使用 .SelectedValue 确实获得了下拉项的正确值 - 但仅在我的 Insert() 方法中,.SelectedValue 在我的 UpdateMethod 中返回空。
插入()
using (con = new SqlConnection(conString))
{
try
{
con.Open();
cmd = new SqlCommand("INSERT INTO Building(Building_Code, Building_Name, Company_ID, Active) VALUES(@BuildingCode, @BuildingName, @CompanyID, @Active)", con);
cmd.Parameters.AddWithValue("@BuildingCode", txtBuildingCode.Text);
cmd.Parameters.AddWithValue("@BuildingName", txtBuildingName.Text);
cmd.Parameters.AddWithValue("@CompanyID", ddlCompanyCode.SelectedValue);
cmd.Parameters.AddWithValue("@Active", chkBuildingActive.Checked);
cmd.ExecuteNonQuery();
}
更新()
using (con = new SqlConnection(conString))
{
try
{
if (ddlCompanyCode.SelectedIndex >= 1)
{
con.Open();
cmd = new SqlCommand("UPDATE Building SET Building_Name = @BuildingName, Company_ID = @CompanyID, Active = @Active WHERE Building_ID = @BuildingID", con);
cmd.Parameters.AddWithValue("@BuildingID", selectedRecordID);
cmd.Parameters.AddWithValue("@BuildingName", txtBuildingName.Text);
cmd.Parameters.AddWithValue("@CompanyID", ddlCompanyCode.SelectedValue);
cmd.Parameters.AddWithValue("@Active", chkBuildingActive.Checked);
cmd.ExecuteNonQuery();
}
}
catch (SqlException sqlExc)
{
MessageBox.Show(sqlExc.Message);
}
}
BindForm()
try
{
con.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
txtBuildingCode.Text = reader["Building_Code"].ToString();
txtBuildingName.Text = reader["Building_Name"].ToString();
ddlCompanyCode.SelectedItem.Text = reader["Company_Code"].ToString();
chkBuildingActive.Checked = reader.GetBoolean(reader.GetOrdinal("Active"));
}
}
catch (SqlException sqlExc)
{
MessageBox.Show(sqlExc.Message);
}
什么会导致这个问题?
【问题讨论】:
-
@TamásSzabó DropDownList 上没有这样的属性。
-
DropdownList Item 的索引是否与 Selected Company_ID 匹配?在 DropDownList 的 SelectedIndexChanged 事件中执行更新数据库的代码?
-
公司的 ddl 索引不匹配。我没有任何 SelectedIndexChanged。
-
也许尝试在两个字段中放入 Company_Id,如 DataTextField 和 DataValueField,以进行调试并检查它。您在 Company_Code 字段中有重复项吗?
标签: c# sql asp.net drop-down-menu webforms