我的数据绑定下拉列表没有填充,我在这里看了其他线程,他们似乎没有帮助。我没有收到任何错误或任何内容,我的webform加载只是找到。其他数据库实现正常工作。它必须是我想念的简单事物。我还使用页面加载实现了NULL
,但也没有做任何事情。
if(!IsPostBack){ddlBatchCodeBind();
答案 0 :(得分:0)
我在这里测试它。假设下拉列表格式正确
<asp:DropDownList ID="ddlBatchCodeDel" runat="server" AppendDataBoundItems="true"></asp:DropDownList>
使用finally
时,您不需要using
。它将为您关闭并处理连接。但是最好将SqlDataAdapter
包装在using
中,因为它使用了IDisposable接口。
using (SqlConnection conn = new SqlConnection(GetConnectionString()))
using (SqlDataAdapter ada = new SqlDataAdapter("SELECT BatchCode, BatchCodeDesc FROM BatchTable", conn))
{
try
{
DataTable batch_codes = new DataTable();
ada.Fill(batch_codes);
ddlBatchCodeDel.DataSource = batch_codes;
ddlBatchCodeDel.DataTextField = "BatchCodeDesc";
ddlBatchCodeDel.DataValueField = "BatchCode";
ddlBatchCodeDel.DataBind();
}
catch (Exception ex)
{
//MessageBox.Show(ex.Message);
}
}
而且我很确定MessageBox.Show
是一个WinForms的东西,而不是一个asp.net的东西。
答案 1 :(得分:0)
这是一种可以在不使用SqlDataAdapter
using (SqlConnection conn = new SqlConnection(GetConnectionString()))
using (SqlCommand cmd = new SqlCommand("SELECT BatchCode, BatchCodeDesc FROM BatchTable", conn))
{
try
{
conn.Open();
DataTable batch_codes = new DataTable();
batch_codes.Load(cmd.ExecuteReader());
ddlBatchCodeDel.DataSource = batch_codes;
ddlBatchCodeDel.DataTextField = "BatchCodeDesc";
ddlBatchCodeDel.DataValueField = "BatchCode";
ddlBatchCodeDel.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
答案 2 :(得分:0)
这不是答案,但我在评论中无法这样说,所以这里是:
请尝试以下代码并报告结果。 (请不要更改Page_Load
或其他地方的任何其他内容)
public void ddlBatchCodeDelBind()
{
var x = new Dictionary<int, string>();
x.Add(1, "Data 1");
x.Add(2, "Data 2");
x.Add(3, "Data 3");
ddlBatchCodeDel.DataSource = X;
ddlBatchCodeDel.DataTextField = "Value";
ddlBatchCodeDel.DataValueField = "Key";
ddlBatchCodeDel.DataBind();
}