我正在尝试从sql server中的表填充C#中的列表框。该表设置为: tblTables TableID int SeatingCapacity int CurrentCapacity int
我尝试使用的代码是:
private void fillListBox()
{
String connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
SqlDataAdapter da = new SqlDataAdapter();
String commandString = "SELECT TableID, SeatingCapacity, CurrentCapacity from tblTables";
SqlCommand cmd = new SqlCommand();
SqlDataReader dr;
conn.Open();
cmd.CommandText = commandString;
cmd.Connection = conn;
dr = cmd.ExecuteReader();
lstTableList.Items.Clear();
lstTableList.BeginUpdate();
while (dr.Read())
{
lstTableList.Items.Add(dr.GetInt32(0) + " - " + dr.GetInt32(1) + " - " + dr.GetInt32(2));
}
lstTableList.EndUpdate();
dr.Close();
conn.Close();
}
要传输的父表单的代码是:
private void mnuFormsTables_Click(object sender, EventArgs e)
{
frmTables aTables = new frmTables();
aTables.MdiParent = this;
aTables.Show();
aTables.Focus();
}
我调用fillListBox()是frmTables的表单加载。但是,当我提出一个断点
String connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
它显示在该行之后,代码跳转到
的父窗体aTables.Show();
非常感谢任何帮助。我也不确定这是否是填充列表框的正确方法。优选地,如果列表框可以显示表ID并且如果当前容量> =座位容量则在其旁边添加“完整”将是好的。 github repo URL为https://github.com/resistince/StaufferRestaurant
编辑:如果我使用:
String connectionString = Properties.Settings.Default.StaufferRestaurantConnectionString;
而不是使用ConfigurationManager它的工作原理。我有System.Configuration.dll作为参考和正确的使用语句,所以我不知道为什么它不能正常工作。