2016-11-18 61 views
-1

我想在DataGridView中搜索TextBox中引入的文本。 Id一直工作到某個點。 我想在另一個文本框中寫入它已經找到的值,但它所做的只是在該文本框中寫入「-1」。爲什麼?我錯過了什麼,或者我做錯了什麼?在DataGridView中查找數據C#

這裏是我的代碼:

private void PopulateDataViewAndFind() 
    { 
     DataSet set1 = new DataSet(); 

     string sourceXml = "<?xml version='1.0' encoding='UTF-8'?>" + 
     "<music>" + 
     "<recording><artist>Coldplay</artist><cd>X&amp;Y</cd></recording>" + 
     "<recording><artist>Dave Matthews</artist><cd>Under the Table and Dreaming</cd></recording>" + 
     "<recording><artist>Natalie Merchant</artist><cd>Tigerlily</cd></recording>" + 
     "<recording><artist>U2</artist><cd>How to Dismantle an Atomic Bomb</cd></recording>" + 
     "</music>"; 

     StringReader reader = new StringReader(sourceXml); 
     set1.ReadXml(reader); 

     DataTableCollection tables = set1.Tables; 
     DataView view1 = new DataView(tables[0]); 

     BindingSource source1 = new BindingSource(); 
     source1.DataSource = view1; 

     dataGridView1.DataSource = source1; 

     int itemFound = source1.Find("artist", textBox1.Text); 
     source1.Position = itemFound; 

     string cdFound = source1.Find("cd", textBox1.Text).ToString(); 
     textBox2.Text = cdFound; 
    } 

請幫幫忙,謝謝! :)

+0

什麼在你的DataGrid中的對象是什麼樣子? – Ciphra

+0

藝術家姓名|歌名例如:U2 |如何拆除原子彈。 – DannyDSB

+0

是的,但它是一個'字符串'「U2 |如何拆除原子彈」,或者它是一個'錄音'對象,擁有'Artist'和一個屬性'CD'的屬性? – Ciphra

回答

2

替換:

string cdFound = source1.Find("cd", textBox1.Text).ToString(); 

到:

string cdFound = ((DataRowView)source1.Current).Row["cd"].ToString(); 
+0

謝謝!它按我的意願工作! :) – DannyDSB