PHP: DataGreedView.Rows[IntRowIndex].Cells[IntCellsIndex].Style.BackColor = Color.Silver; DataGreedView.Rows[IntRowIndex].DefaultCellStyle.BackColor = Color.Silver;
cupper попробуй это http://www.cyberforum.ru/javascript/thread157892.html Но тру ребята делают так http://jqueryui.com/demos/dialog/#animated
План такой собираются данные жмутся и уже потом сохраняются на диск в файл. Дело в том что данных довольно много, я думаю что километровый стринг не самое лучшее решение. а как сделать? тоесть куда лучше складировать данные в памяти, что бы потом их обработать и сохранить в файл.
Как корректно очистить только содержимое столбца DataGrid? Можно по номеру или может как-то еще. Пробовал так: Code: dataGridView1.Columns[3].HeaderText; dataGridView1.DataSource = null; не компилится, ошибка выскакивает - В качестве оператора могут использоваться только выражения присваивания, вызова, инкремента, декремента и создания нового объекта. Потом пробовал так: Code: DataView dv = dataGridView1.DataSource as DataView; dv.Table.Clear(); прога хоть и компилится, но не работает.
Как остановить background worker? Стандартным методом не хочет останавливать =(. Хочет, чтобы я переопределил метод. Как это сделать правильно? P.S SetConsoleDisplayMode на висте при больших разрешениях экрана не отображает.
А он и не должен ничего останавливать, в .DoWork и в .ProgressChanged нужно смотреть запрос на остановку: PHP: if (backgroundWorker_Object.CancellationPending) { e.Cancel = true; return; }
Помогите оптимизировать: Code: foreach (string rate in phoneRates) { MySqlCommand command = new MySqlCommand("SELECT COUNT(*) FROM bdc_phones WHERE status='Продано' AND seller='" + comboBoxSellerFullName.Text + "' AND rate='" + rate + "' AND saleDate='" + currentDate.ToShortDateString() + "'", FormMain.dbConnection); int count = Convert.ToInt32(command.ExecuteScalar()); if (count != 0) dataGridViewReportByDays.Rows.Add(comboBoxSellerFullName.Text, currentDate.ToShortDateString(), "Мобильный телефон, тариф " + rate, count.ToString()); } P.S. Прога для реальных пацанов. Пацаны опускают лохов на мобилы и учитывают всё в этой программе XD
можно попробовать Code: using(MySqlCommand command = new MySqlCommand("SELECT COUNT(*) FROM bdc_phones WHERE status='Продано' AND seller='" + comboBoxSellerFullName.Text + "' AND rate='" + rate + "' AND saleDate='" + currentDate.ToShortDateString() + "'", FormMain.dbConnection)) { code } но не уверен, что это внесёт существенные изменения.
Code: /* * Created by SharpDevelop. * User: Dead4ik * Date: 30.08.2010 * Time: 20:44 * * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using System.IO; using System.Text; using System.Web; namespace Moswar { /// <summary> /// Description of MainForm. /// </summary> public partial class MainForm : Form { public int clan=241; public string HtmlText; public string str2; public int first; public int last; public string nav; public MainForm() { // // The InitializeComponent() call is required for Windows Forms designer support. // InitializeComponent(); // // TODO: Add constructor code after the InitializeComponent() call. // } void Label1Click(object sender, EventArgs e) { } void Label3Click(object sender, EventArgs e) { } void Button1Click(object sender, EventArgs e) { GetHTML(); } void MainFormLoad(object sender, EventArgs e) { } void GetHTML() { Encoding enc = Encoding.GetEncoding("windows-1251"); for (;clan<258;clan++) //foreach (int a in new int[] {1, 2, 3, 4, 257}) { GoMoswar(clan); System.Threading.Thread.Sleep(1000); GetHTMLText(); /*if (HtmlText.Contains("На")) { if (HtmlText.Contains("этот")) { if (HtmlText.Contains("клан")) {*/ if (HtmlText.Contains("можно будет")) { HtmlText.StartsWith("<p>На этот клан можно будет напасть <b>", System.StringComparison.CurrentCultureIgnoreCase); HtmlText.EndsWith("</b>.</p>", System.StringComparison.CurrentCultureIgnoreCase); first = HtmlText.IndexOf("<p>На этот клан можно будет напасть <b>") + "<p>На этот клан можно будет напасть <b>".Length; last = HtmlText.LastIndexOf("Этот клан сможет напасть"); str2 = HtmlText.Substring(first, last - first); textBox3.Text+=str2+" "+webBrowser1.Url+Environment.NewLine; //str2=""; textBox4.Text=HtmlText; /*} } } } else { textBox3.Text+="Error"; */ } } } void GoMoswar(int clan) { nav = ""; nav="moswar.ru/clan/"+clan; webBrowser1.Navigate(nav , false); } void GetHTMLText() { HtmlText=""; HtmlText=webBrowser1.DocumentText; } void Button2Click(object sender, EventArgs e) { if (webBrowser1.IsBusy==false) webBrowser1.Navigate("moswar.ru/clan/237"); } } } Что неправильно в этом коде? Он сначала парсит 1 страницу, а потом последнюю
2 Dead4ik строки "можно будет" вообще на странице нет, поэтому (HtmlText.Contains("можно будет")) всегда возвращает False и у тебя ничего не происходит.
Как минимум 2 раза условие соблюдается Вот другой код Code: /* * Created by SharpDevelop. * User: Dead4ik * Date: 05.09.2010 * Time: 23:02 * * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using System.IO; using System.Text; using System.Text.RegularExpressions; using System.Net; namespace ParserNew { /// <summary> /// Description of MainForm. /// </summary> public partial class MainForm : Form { public MainForm() { // // The InitializeComponent() call is required for Windows Forms designer support. // InitializeComponent(); // // TODO: Add constructor code after the InitializeComponent() call. // } void Button1Click(object sender, EventArgs e) { TimeClanAttack(); } void TimeClanAttack() { Encoding enc = Encoding.GetEncoding("windows-1251"); int clan=169; string url="http://moswar.ru/clan/"; string html=String.Empty; string pattern= "можно будет напасть <b>(.*)</b>"; while (clan<177) { url="http://moswar.ru/clan/"+clan; HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); HttpWebResponse myHttpWebResponse =(HttpWebResponse)myHttpWebRequest.GetResponse(); StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream()); System.Threading.Thread.Sleep(2500); html = myStreamReader.ReadToEnd(); Match match = Regex.Match(html, pattern); textBox1.Text+=match.Groups[0].ToString(); textBox2.Text=html; clan++; html=String.Empty; url=String.Empty; } } } }
Вопрос к продвинутым шарпистам. Используете ли вы атрибуты? Для чего? В каких случаях они приносят пользу?
Если честно, я не гуглил на эту тему. Т.к. все ссылки на статьи по сишарпу, а меня интересует дельфи. Атрибуты там очень похожи, в дельфийском разделе про это спрашивать бесполезно, а здесь рассчитывал получить простой пример чтобы понять профит. Ну сходя по ссылке прочитав введение вроде общий смысл понял.
Подскажите пожалуйста как справиться с такой ситуацией: Есть БД с 2 таблицами T1 и T2, которые выводятся с помощью asp.net на 2 разные страницы в GridView. Собственно на GridView есть кнопки редактирования обработчики которых вызывают редирект на другую страницу (форму редактирования). На форме редактирования в TextArea при помощи LINQ с таблицы вытаскиваются данные которые редактируются и, самое главное, через метода при помощи LINQ заносятся обратно в БД. Но тут возникает сложность, в метод переданы данные которые должны быть занесены в таблицу, но как узнать в какую таблицу? Можно проверять имена таблиц, но этот вариант очень не эфективен. Какие есть еще варианты определения из какой таблицы первоначально были запрошены данные? средства C#/ASP.NET/LINQ буду благодарен за помощь.
Вообще, разрыв мозга, раз 5 читал, чтобы понять)) и то не уверен, что правильно понял. Я так понимаю, что если на странице редактирования данные выводятся не из рандомной таблицы, то на момент формирования страницы редактирования таблицу мы всё таки знаем. Ну, а теперь самое интересное, создаёшь hide-поле и запихиваешь туда id своей таблицы (1 или 2). Ну, или я бы на твоём месте, вообще задумался, о структуре твоего web-приложения, и сделал без гавнокода, которыя я предложил