Я не могу найти, где проблема, когда я помещаю цикл while в качестве комментария, который он работает, после цикла, который мы не можем читать с sqldatareader больше? списокbox2 еще пустой!почему listbox2 все еще пуст?
public partial class exTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string connectionString = WebConfigurationManager.ConnectionStrings["Northwind"].ConnectionString;
SqlConnection con = new SqlConnection(connectionString);
string sql = "select employeeid,firstname,lastname from employees";
SqlCommand cmd = new SqlCommand(sql, con);
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
string item;
ListBox1.Items.Clear();
while (reader.Read())
{
item =reader.GetString(1) + reader.GetString(2);
ListBox1.Items.Add(item);
}
ListBox2.DataSource = reader;
ListBox2.DataValueField = "employeeId";
ListBox2.DataTextField = "firstname";
ListBox2.DataBind();
reader.Close();
con.Close();
}
}
Добавление элементов из Reader в список вместо установки источника данных для чтения. Я думаю, проблема заключается в том, что «читатель» является итератором, и вы уже повторили его один раз, поэтому к тому времени, когда вы установите источник для читателя, у него нет никаких элементов. –
'ListBox2.DisplayMember =" firstname "; ListBox2.ValueMember = "lastname"; 'try this .. также как сотрудник мог когда-либо использоваться, когда он не является частью вашего исходного запроса Select ' ListBox2.DataSource = reader; 'должен быть установлен последним – MethodMan
emloyeeid является частью запроса в строке sql, я все еще смущен –