【发布时间】:2012-02-02 20:11:52
【问题描述】:
我无法将 DataSet 放入名为 PrefixDescription 的网络表单文本框中。我尝试将行转换为字符串,然后尝试将字符串放入文本框中。但是,文本框中没有任何内容。 DataSet 确实有数据。我尝试了数据绑定和数据绑定,但它们也不起作用。
private DirectoryEntry testAD = new DirectoryEntry();
private DataTable DT = new DataTable();
protected void Button2_Click(object sender, EventArgs e)
{
DirectorySearcher search = new DirectorySearcher(testAD);
SearchResultCollection myResults = search.FindAll();
search.PropertiesToLoad.Add("name");
DT.Columns.Add("name");
DT.Columns.Add();
foreach (SearchResult SR in myResults)
{
DataRow dr = DT.NewRow();
DirectoryEntry DE = SR.GetDirectoryEntry();
dr["name"] = DE.Properties["name"].Value;
DT.Rows.Add(dr);
DT.AcceptChanges();
PrefixDescription.Text = Convert.ToString(dr["name"]);
DE.Close();
}
}
【问题讨论】:
-
您确定
DE.Properties["name"].Value计算结果为非空字符串吗? -
我加倍检查以确保 DE.Properties["name"].Value 有一个值并且确实有
-
您可以将该值存储到字符串中,然后将 textbox.Text 设置为该值 - 只是为了避免在从 DataRow 对象设置和获取相同值时可能发生的任何事情。此外,将 textbox.Text 设置为某个硬编码值,以确保您不会遇到与该特定控件无关的问题。
-
当我第一次看到这个时,最明显的一点是 PrefixDescription.Text = Convert.ToString(dr["name"]);将始终覆盖 PrefixDescription.Text。所以最后一行总是赢。我不知道这是否是您的问题的一部分,但似乎它肯定可以
-
字符串文本测试 = ""; texttest = Convert.ToString(dr["name"]); PrefixDescription.Text = texttest;嗯,我添加了这个以将值保存在字符串中。它是从生产广告中提取的,所以会有一千左右的用户......