Уважаемый, BrainDeaD! Есть код - парсинга ссылки в гриде и удаления строки из грида(из базы так и не могу сделать). Но, тут проблема.. когда нажимаю парсинг - выпадает окно(которое я сделал(Message) о запросе удаления строки, и при этом парсинг не происходит). Как можно исправить? Code: private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { /*---Удаление строки---*/ if (e.RowIndex != -1) { DialogResult result = MessageBox.Show("Вы УВЕРЕНЫ, что хотите удалить строку из таблицы?", "Осторожно. Удаление строки из таблицы", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); switch (result) { case DialogResult.Yes: { if (e.ColumnIndex == 3) dataGridView1.Rows.RemoveAt(e.RowIndex); else if (e.ColumnIndex == 0) { /*---Парсинг---*/ XmlTextReader reader = new XmlTextReader((sender as DataGridView)[e.ColumnIndex, e.RowIndex].Value.ToString()); while (reader.Read()) { switch (reader.Name) { case "title": listBox1.Items.Add(reader.ReadString()); break; case "link": listBox1.Items.Add(reader.ReadString()); break; case "pubDate": listBox1.Items.Add(reader.ReadString()); listBox1.Items.Add("\n"); break; } } } break; } case DialogResult.No: { return; } } И не могли бы Вы еще мне помочь в таком вопросе - правильно ли я понимаю данный код: Code: if (e.RowIndex != -1) { if (e.ColumnIndex == 3) dataGridView1.Rows.RemoveAt(e.RowIndex); else if (e.ColumnIndex == 0) { если индекс строки не равен -1 тогда если индекс колонки равен 3 удаляем строку иначе если индекс колонки равен 0 что-то делаем..
Всем доброго времени суток, еще раз! Есть такое событие: Code: private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { /*---Удаление из базы---*/ //SqlConnection connection = new SqlConnection("server=ROOT-ПК\\SQLEXPRESS; database=edik; uid=sa; pwd=123321"); SqlConnection cn = new SqlConnection(strConn); cn.Open(); SqlCommand cmd = new SqlCommand("DELETE FROM edik_1"); cmd.Connection = cn; DialogResult result = MessageBox.Show("Вы УВЕРЕНЫ, что хотите удалить всё содержимое базы?", "Осторожно. Удаление всего содержимого базы.", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); switch (result) { case DialogResult.Yes: { cmd.ExecuteNonQuery(); cn.Close(); break; } case DialogResult.No: { return; } } /*---Удаление содержимого всей таблицы---*/ dataGridView1.Rows.Clear(); } Данное событие удаляет из базы и очищает грид, по нажатию на хидер. Но тут есть проблема, а именно, всё это происходит по нажатию на любой хидер, а мне необходимо на конкретный, т.е. на один, последний в гриде. Как это можно прописать?
Эту проблему я решил. Но появилась другая. У меня на компе стоит база MS SQL Server Managment Studio 2008. В ней я создал базу, в базе таблицу. И с ней работает моя прога. Но, если переношу базу на другой комп где стоит, к примеру, MS SQL Server Managment Studio 2008 R2, то база не аттачится. Выдает ошибку. Мне сказали, что так будет всегда при конфликте версии, патчей, обновлений. И что можно написать типа как скрипт или вроде того универсальный типа как.. вот собственно и вопрос, как его написать?
И снова здравствуйте!(с) Опять необходима помощь, и опять по данной программе. Помощь в следующем: - Как можно организовать проверку на несуществующий фид? Чтобы программа не валилась каждый раз. Ну, что я имею ввиду, вводим мы допустим www.antichat.ru - это url, но не rss. И следовательно программа будет валится. - Как можно менять параметры подключения к базе, не перекомпилируя приложение? Может как нибудь используя файл конфигураций или что-то вроде этого? Нашел по 2-му пункту следующее, верно ли: Строку соединения с базой данных можно жестко прописать в исходном коде приложения, однако, это не самый лучший вариант, т.к. при изменении пути к базе данных, либо других параметров соединения придется вносить изменения в исходный код приложения и перекомпилировать его. В связи с этим, лучше всего использовать строку соединения, сохраненную в файле web.config. Code: <connectionStrings> <add name="FORTEST_ConnectionString" connectionString="Provider= System.Data.SqlClient;Data Source=C:\FORTEST.mdb"/> </connectionStrings> Впоследствии эту строку можно извлечь из файла web.config: Code: string strSqlConnection = WebConfigurationManager.ConnectionStrings ["FORTEST_ConnectionString"].ConnectionString; Добавлено: Сделал так. В файле программы - app.config добавил код: Code: <appSettings> <add key="vasya" value="data source=.\SQLEXPRESS; initial catalog=vasya; UID=sa;PWD=123321"/> </appSettings> В файле dataAccess.cs добавил следующее: Code: using System.Configuration; и Code: string strConn = ConfigurationSettings.AppSettings["vasya"]; Вроде работает, но то ли это?
1. Code: XmlTextReader reader = new XmlTextReader("http://football.ua/rss2.ashx"); try { while (reader.Read()) { switch (reader.Name) { case "title": Console.WriteLine(reader.ReadString()); break; case "link": Console.WriteLine(reader.ReadString()); break; } } } catch (XmlException e) { Console.WriteLine(e); } подставь другой урл и увидишь, что программа на валится. в блоке catch можешь обрабатывать ошибку как хочешь: выдавать на экран, писать в лог или вообще ничего не делать. 2. всё правильно.
1. А если использовать в парсере не конкретную ссылку, а как бы общий принцип. Ну, чтобы сразу не парсило и нормально запускалось. А то сейчас у меня стоит парсинг на первую строку таблицы, на нулевую или вторую - ошибка. Code: private void dataGridView1_SelectionChanged(object sender, EventArgs e) { /*---Парсинг---*/ news_dscpt_lb1.Items.Clear(); XmlTextReader reader = new XmlTextReader(dataGridView1.CurrentRow.Cells[1].Value.ToString()); try { while (reader.Read()) { switch (reader.Name) { case "title": news_dscpt_lb1.Items.Add(reader.ReadString()); break; case "link": news_dscpt_lb1.Items.Add(reader.ReadString()); break; case "pubDate": news_dscpt_lb1.Items.Add(reader.ReadString()); news_dscpt_lb1.Items.Add("\n"); break; } } } catch (XmlException ex) { DialogResult result = MessageBox.Show("Закрыть программу?!\n" + "\n 'OK' -- завершение приложения \n 'Cancel' -- продолжить работу", "Отказ в доступе к указанному пути" , MessageBoxButtons.OKCancel, MessageBoxIcon.Error); switch (result) { case DialogResult.OK: { Close(); break; } case DialogResult.Cancel: { return; } } } } Сейчас уже не выпадает Exception, если добавляю не существующий фид. просто ошибка, прога валится без выдачи Exception которую я прописал. Выпадает исключение, только если в базе одна эта ссылка - несуществующий фид. 2. Спасибо.