我正在以MySQL(C#)的胜利形式为大学做学生出勤项目。
我已经问Hidden Column in Listbox我得到了解决方案。
更新了查询 -
string MyConString = ConfigurationManager.ConnectionStrings["College_Management_System.Properties.Settings.cmsConnectionString"].ConnectionString;
MySqlConnection connection = new MySqlConnection(MyConString);
string cnd1 = "select name,admin_no from student_admision_master where course='" + course_code + "' AND year='" + year_code + "' AND sem='" + semester_code + "' AND batch='" + batch_code + "'";
MySqlDataAdapter da = new MySqlDataAdapter(cnd1, connection);
connection.Open();
DataSet ds = new DataSet();
MySqlCommand command = connection.CreateCommand();
da.Fill(ds, "student_admision_master");
//dataGridView1.DataSource = ds.Tables[formName];
listBox1.DataSource = ds.Tables[0].DefaultView;
listBox1.DisplayMember = "name";
listBox1.ValueMember = "admin_no";
connection.Close();
我在LIstbox中找到了学生姓名。但是,.. Listbox到Listbox移动代码抛出错误,..
//所有Listbox2项目移动到列表框3
private void btn_toOd_Click(object sender, EventArgs e)
{
int count = listBox2.Items.Count;
for (int i = 0; i < count; i++)
{
listBox3.Items.Add(listBox2.Items[i].ToString());
}
listBox2.Items.Clear();
}
//所有Listbox3项目移动到列表框2
private void btn_fromOd_Click(object sender,EventArgs e) { int count = listBox3.Items.Count; for(int i = 0; i&lt; count; i ++) { listBox2.Items.Add(listBox3.Items [I]的ToString()); } listBox3.Items.Clear(); }
//仅限所选项目移动..
private void btn_toAb_Selected_Click(object sender, EventArgs e)
{
int count = listBox1.SelectedItems.Count;
for (int i = 0; i < count; i++)
{
listBox2.Items.Add(listBox1.SelectedItems[i].ToString());
}
for (int i = 0; i < count; i++)
{
listBox1.Items.Remove(listBox1.SelectedItems[0]);
}
}
private void btn_fromAb_Selected_Click(object sender, EventArgs e)
{
int count = listBox2.SelectedItems.Count;
for (int i = 0; i < count; i++)
{
listBox1.Items.Add(listBox2.SelectedItems[i].ToString());
}
for (int i = 0; i < count; i++)
{
listBox2.Items.Remove(listBox2.SelectedItems[0]);
}
}
当DataSource属性为时,无法修改项集合 组。在ARGUMENT EXCEPTION中。
如何将Listbox1中的项目集合移动到Listbox2。
如何从列表框中访问特定的ValueMember(admin_no)。
bzs我想根据admin_no保存记录。
信息是否足够,或者我可以在这里添加图片,..
请说明这样做!...
提前致谢....
答案 0 :(得分:1)
您的列表框是数据绑定 - 这意味着,列表框中的项目由绑定管理器自动管理。你无法真正按照你的方式移动物品。
相反,您需要相应地修改基础数据源。这意味着:不要在列表框中添加/删除项目,而是添加/删除基础数据集。
列表框中的每个项目都是DataRow
或DataRowView
,其Row
属性可以访问基础DataRow
。一旦您有权访问DataRow
,就可以使用row['fieldname']
确定字段值。
要将行从一个数据集移动到另一个数据集,您必须使用目标表上的ImportRow
方法添加该行。然后,您必须从源表中删除该行。样本(你可能需要稍微玩一下,因为我现在还没有尝试过):
DataRow row = listBox.SelectedItem;
/* The above may need to be changed to
DataRow row = (listBox.SelectedItem as DataRowView).Row;
in case the SelectedItem is a DataRowView instead of a DataRow
*/
destDataSet.Table.ImportRow(row);
sourceDataSet.Table.Remove(row);