c# - 下拉列表选定项目未显示正确的项目
问题描述
// fill from database
SqlConnection cn = new SqlConnection(GlobalData.connectionstring);
string readnamesquery = "select cwFullTitle from tbCowWorkers";
cn.Open();
SqlCommand cmd = new SqlCommand(readnamesquery, cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
ddlUsers.DataSource = dt;
ddlUsers.DataValueField = "cwFullTitle";
ddlUsers.DataTextField = "cwFullTitle";
ddlUsers.DataBind();
cn.Close();
// insert selected value to database
SqlConnection cn = new SqlConnection(GlobalData.connectionstring);
string registerQuery = "insert into Depot (dTdeliveryName) values (N'"+ddlUsers.SelectedValue.ToString()+"')";
SqlCommand cmd = new SqlCommand(registerQuery, cn);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
我从 SQL Server 填写一个下拉列表,然后将所选项目发送到 SQL Server 中的另一个表;但它将下拉列表的第一项作为选定项发送。
所选项目未更改并返回默认值。
解决方案
原因很明显,你是在填充下拉列表,然后插入记录,所以它必然会取DropdownList的第一项。
我建议您将填充下拉列表的代码分开在另一个函数中,并仅在 DropDownList 的 selected_index 更改(ddl_SelectedIndexChanged)上进行插入。在这个 ddl_SelectedIndexChanged 函数中,只需检查下拉列表的选定值并将其插入到您的目标表中(请记住不要调用该函数来加载/填充您当前在共享代码片段中执行的下拉列表)。
像这样的东西
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection cn = new SqlConnection(GlobalData.connectionstring);
string readnamesquery = "select cwFullTitle from tbCowWorkers";
cn.Open();
SqlCommand cmd = new SqlCommand(readnamesquery, cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
ddlUsers.DataSource = dt;
ddlUsers.DataValueField = "cwFullTitle";
ddlUsers.DataTextField = "cwFullTitle";
ddlUsers.DataBind();
cn.Close();
}
}
protected void ddlUser_SelectedIndexChanged(object sender, EventArgs e)
{
// insert selected value to database
SqlConnection cn = new SqlConnection(GlobalData.connectionstring);
string registerQuery = "insert into Depot (dTdeliveryName) values
(N'"+ddlUsers.SelectedValue.ToString()+"')";
SqlCommand cmd = new SqlCommand(registerQuery, cn);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
希望这可以帮助!
推荐阅读
- mysql - LINUX冻结pdo异常错误
- php - Wordpress:使用自定义帖子类型刷新永久链接
- node.js - node-oracledb 软件包未安装在 Redhat VM 上
- php - 从数据库到 URL 的 ID
- html - 从键盘导航中排除按钮
- ruby - 无法激活 calabash-android-0.9.5,因为 json-2.1.0 与 json (~> 1.8) 冲突 (Gem::ConflictError)
- java - 在休眠中使用 sessionfactory 持久化之前检索主键 ID
- arrays - 在快速机器学习中分配数组无法将类型“[[String]]”的值分配给类型“String?”
- java - 将角度模型数据映射到 spring pojo 类不起作用
- python - Pandas groupbyObject 到 DataFrame 进行合并