2014-03-29 48 views
1
if (this.listView2.Items[0].Selected == true) 
{ 
    SqlCommand cmd0 = new SqlCommand("Update Friend set Tik = 1 Where Email = '" 
     + listView2.SelectedItems[0].Text 
     + "' and FriendID = " 
     + int.Parse(Form2.xxx.ToString()), cnn); 
    cnn.Open(); 
    int gg = cmd0.ExecuteNonQuery(); 
    MessageBox.Show("Arkadaşlık İsteği Onaylandı."); 
    cnn.Close(); 
} 

我可以使用什麼來選擇ListView上的選定值?使用listview工具:在ListView上選擇一個值

 SqlCommand xcx = new SqlCommand("Select * From Friend Where Tik = 0 and Email ='" + **listView2.SelectedItems[0].Text** + "'", cnn); 

或在此查詢中。我如何使用它。我點擊了所選的listview項目。我想利用價值

回答

0

我不知道爲什麼SelectedItems[0]不會工作你的情況(我認爲它應該)你可以使用繼承SelectedValue酒店還..

由於Selam22 pointed,有否.Text property for SelectedItems。您可以使用Item財產返回object。然後你可以使用.ToString()方法。喜歡;

listView2.SelectedItems[0].Item.ToString() 

但更重要的是,您應該始終使用parameterized queries。這種字符串連接對於SQL Injection攻擊是開放的。

SqlCommand cmd0 = new SqlCommand("Update Friend set Tik = 1 Where Email = @email and FriendID = @id)", cnn); 
cmd0.Parameters.AddWithValue("@email", listView2.SelectedItems[0].Item.ToString()); 
cmd0.Parameters.AddWithValue("@id", int.Parse(Form2.xxx.ToString())); 
cnn.Open(); 
int gg = cmd0.ExecuteNonQuery(); 
MessageBox.Show("Arkadaşlık İsteği Onaylandı."); 
cnn.Close(); 

我們沒有看到你所定義的連接代碼,但考慮到使用using statement處置您的SqlConnectionSqlCommand

+1

SelectedItems.Text? 'SelectedItems'上沒有這樣的屬性 –

+0

@ Selman22那麼爲什麼你在回答中使用了'SelectedItems'如果沒有這樣的屬性呢? –

+0

我的意思是,沒有'Text'屬性。它是(SelectedItems)項目的集合。不是一個單一的項目。 –

0

試試這個:

int EmailColumnIndex = 2; //it is the column index of Email column in ListView 
ListView.SelectedListViewItemCollection items = listView1.SelectedItems; 
ListViewItem item = items[0]; 
string selctedEmail = item.SubItems[EmailColumnIndex].Text; 
0

我認爲你正在尋找:

listView2.SelectedItems.Count > 0 

代替:

this.listView2.Items[0].Selected == true