【问题标题】:How to populate dropdown list with data from database如何使用数据库中的数据填充下拉列表
【发布时间】:2026-02-11 12:05:02
【问题描述】:

我有一个从数据库中提取数据并将其显示在文本框中的存储过程;它显示文本框,但不显示下拉列表或具有日期文本模式的文本框。

我已删除选择值选项,因为它会引发错误 SelectedValue,该错误无效,因为它不存在于项目列表中。\r\n参数名称:值“

DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "PP_spSearchReturnCrate";
if (!string.IsNullOrEmpty(txtReceiptNo.Text.Trim()))
{
    cmd.Parameters.Add("@receiptNo", SqlDbType.VarChar).Value = txtReceiptNo.Text.Trim();
}
cmd.Connection = sqlConn;
sqlConn.Open();
SqlDataAdapter sqlDa = new SqlDataAdapter(cmd);
sqlDa.Fill(dt);

if (dt.Rows.Count > 0)
{
    String DATE = Convert.ToDateTime(dt.Rows[0]["returnDte"]).ToString("MM/dd/yyyy");
    txtReturnDte.Text = DATE;
    txtReceipt.Text = dt.Rows[0]["receiptNo"].ToString(); //Where ColumnName is the Field from the DB that you want to display
    //ddlCustomer0.Text= dt.Rows[0]["custName"].ToString();
    ddlDriver.Text = dt.Rows[0]["driverName"].ToString();
    ddlUnitId.Text = dt.Rows[0]["unitId"].ToString();
    txtNumber.Text = dt.Rows[0]["qtyReturned"].ToString();
    txtLocation.Text = dt.Rows[0]["custLocation"].ToString();
    Panel1.Visible = true;
}
else
{
    lblmsg.Text = "No Records Found";
    Panel1.Visible = false;
    btnEdit.Visible = false;
}

我希望能够在下拉列表中显示数据库中的数据以及在文本框中显示日期

【问题讨论】:

  • 下拉列表的标记和代码在哪里?

标签: c# asp.net datetime dropdown


【解决方案1】:

首先创建一个ListItem,然后将其添加到下拉列表中。

ListItem li = new ListItem(dt.Rows[0]["custName"].ToString());
ddlCustomer0.Items.Add(li);

【讨论】:

  • 但它没有从数据库中提取数据
  • 把这两行放在你注释掉的那一行下面。
  • 我这样做了,它只能工作一个,但一旦刷新,我就会得到同样的错误
  • 我是否应该在页面加载中放置另一个代码,因为它工作一次,然后当我再次尝试提取信息时收到相同的错误消息