我有我的更新方法的窗体,窗体是详细视图。在文本框旁边,我有一个列表框,显示数据库表中所有名称的名称。在列表框中,我还有一个额外的文本框来快速搜索名称,以防用户想要键入它。刷新列表框的数据源
当我去更新其中一个名称时,比如将John更改为Jonathan,数据库更新为新的名字,因为我已经检查了SQL服务器,但列表框中的名称不会改变!通过将当前选择的列表框的位置移动到movefirst()可以解决这个问题。但是,在列表框中,我有一个快速搜索的文本框,所以我在搜索文本框中键入Jonathan,但没有任何内容出现。但是,如果我输入John的名字,那么我会在表格中获得该行的详细信息。
有没有办法解决这个问题?
更新1:
伊夫试图使列表框的数据源空然后再次重新分配,但它doesen't工作。我将我的代码放在下面的更新表单中。
命名空间WindowsFormsApplication1 { 公共部分类updateContact:形式 { 公共updateContact() { 的InitializeComponent(); }
private void updateContact_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'tblcontactsupdate.tblContacts' table. You can move, or remove it, as needed.
this.tblContactsTableAdapter.Fill(this.tblcontactsupdate.tblContacts);
}
private void btnUpdateContact_Click(object sender, EventArgs e)
{
int x;
Program.da.UpdateCommand = new SqlCommand("Update tblContacts SET FIRSTNAME = @FIRSTNAME, LASTNME = @LASTNME WHERE ID = @ID", Program.cs);
Program.da.UpdateCommand.Parameters.Add("@FIRSTNAME", SqlDbType.VarChar).Value = fIRSTNAMETextBox.Text;
Program.da.UpdateCommand.Parameters.Add("@LASTNME", SqlDbType.VarChar).Value = lASTNMETextBox.Text;
Program.da.UpdateCommand.Parameters.Add("@ID", SqlDbType.VarChar).Value = iDTextBox.Text;
Program.cs.Open();
x = Program.da.UpdateCommand.ExecuteNonQuery();
Program.cs.Close();
if (x >= 1)
{
MessageBox.Show("Record(s) has been updated");
Program.ds.Clear();
Program.da.Fill(Program.ds);
txtfindUpdatecontact.Text = "";
//lbupdateContact.DataSource = null;
//lbupdateContact.DataSource = this.tblcontactsupdate.tblContacts;
}
}
private void txtfindUpdatecontact_TextChanged(object sender, EventArgs e)
{
if (!txtfindUpdatecontact.Text.Equals(""))
{
this.tblContactsBindingSource.Filter = "FIRSTNAME = '" + txtfindUpdatecontact.Text + "'";
}
else
{
this.tblContactsBindingSource.RemoveFilter();
}
}
private void lbupdateContact_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void iDTextBox_TextChanged(object sender, EventArgs e)
{
}
private void fIRSTNAMETextBox_TextChanged(object sender, EventArgs e)
{
}
private void lASTNMETextBox_TextChanged(object sender, EventArgs e)
{
}
}
}
不知道为什么ü已经创建了一个person对象类的数据库,它是一个实践ü即使我已经了解了面向对象的数据库,也应该这样做。但这是我第一次亲自做一个项目来学习数据库。所以例如我有我的数据库中的联系人表,我应该创建一个联系人类?并列出所有成员这个类如何链接到我的SQL数据库联系表tho? – KHAN 2012-07-27 20:42:03
这只是想象,一个虚拟的数据库为例,取决于你的需要,也有自动解决这个许多技术,这就是所谓的ORM(对象关系映射),实体框架是其中之一 – 2012-07-27 20:44:57
啊好吧好吧,我试图乌尔法didint工作:/ – KHAN 2012-07-28 07:57:02