AmoN
@AmoN

DataGrid и парсинг?

Есть код парсинга ссылки в гриде и удаления строки из грида(из базы так и не могу сделать). Но, тут проблема, когда нажимаю парсинг, выпадает окно(которое я сделал(Message) о запросе удаления строки, и при этом парсинг не происходит. Подскажите, как можно исправить?

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)<br/>
 {<br/>
 /*---Удаление строки---*/<br/>
<br/>
if (e.RowIndex != -1)<br/>
 {<br/>
 DialogResult result = MessageBox.Show(&quot;Вы УВЕРЕНЫ, что хотите удалить строку из таблицы?&quot;,<br/>
 &quot;Осторожно. Удаление строки из таблицы&quot;, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);<br/>
 switch (result)<br/>
 {<br/>
 case DialogResult.Yes:<br/>
 {<br/>
 SqlConnection connection = new SqlConnection(&quot;server=ROOT-ПК\\SQLEXPRESS; database=edik; uid=sa; pwd=123321&quot;);<br/>
 connection.Open();<br/>
 SqlCommand cmdDel = new SqlCommand(&quot;DELETE FROM edik_1 WHERE FeedID = @FeedID&quot;, connection);<br/>
 SqlParameter param = new SqlParameter();<br/>
 param.DbType = DbType.Int32;<br/>
 param.ParameterName = &quot;@FeedID&quot;;<br/>
 // MessageBox.Show(dataGridView1.CurrentRow.Cells[0].Value.ToString());<br/>
<br/>
//0 - это первая ячейка в текущей строке грида<br/>
<br/>
param.Value = dataGridView1.CurrentRow.Cells[0].Value;<br/>
 cmdDel.Parameters.Add(param);<br/>
 byte count = 0;<br/>
<br/>
try<br/>
 {<br/>
 count = (byte)cmdDel.ExecuteNonQuery();<br/>
 }<br/>
 catch (Exception ex)<br/>
 {<br/>
 MessageBox.Show(ex.ToString());<br/>
 }<br/>
 finally<br/>
 {<br/>
 if ((connection != null))<br/>
 {<br/>
 connection.Close();<br/>
 }<br/>
 }<br/>
<br/>
if (count &gt; 0)<br/>
 {<br/>
 dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);<br/>
 }<br/>
 <br/>
 if (e.ColumnIndex == 3) dataGridView1.Rows.RemoveAt(e.RowIndex);<br/>
 else if (e.ColumnIndex == 0)<br/>
 {<br/>
 /*---Парсинг---*/<br/>
 XmlTextReader reader = new XmlTextReader((sender as DataGridView)[e.ColumnIndex, e.RowIndex].Value.ToString());<br/>
 while (reader.Read())<br/>
 {<br/>
 switch (reader.Name)<br/>
 {<br/>
 case &quot;title&quot;:<br/>
 listBox1.Items.Add(reader.ReadString());<br/>
 break;<br/>
 case &quot;link&quot;:<br/>
 listBox1.Items.Add(reader.ReadString());<br/>
 break;<br/>
 case &quot;pubDate&quot;:<br/>
 listBox1.Items.Add(reader.ReadString());<br/>
 listBox1.Items.Add(&quot;\n&quot;);<br/>
 break;<br/>
 }<br/>
 } <br/>
 <br/>
 }<br/>
 break;<br/>
 }<br/>
<br/>
case DialogResult.No:<br/>
 {<br/>
 return;<br/>
 }<br/>
 }<br/>
 <br/>
 }<br/>
 }<br/>



Должно быть так:

70d404101ff7.jpg

Раньше работало, до добавление неких фич(которые тоже нужны).


А теперь, вот так:

3fad6ff55edd.jpg
  • Вопрос задан
  • 2685 просмотров
Пригласить эксперта
Ответы на вопрос 1
Bounz
@Bounz
Так у вас же первым if'ом идет проверка на то что индекс строки не -1 и сразу же задается вопрос об удалении. Вам его надо еще обернуть проверкой if (e.ColumnIndex == 3), которая идет далее по тексту программы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы