我有我的更新方法的窗體,窗體是詳細視圖。在文本框旁邊,我有一個列表框,顯示數據庫表中所有名稱的名稱。在列表框中,我還有一個額外的文本框來快速搜索名稱,以防用戶想要鍵入它。刷新列表框的數據源
當我去更新其中一個名稱時,比如將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