Je travaille sur un projet. Sur mon server mssql j'ai tellement d'URL et j'ai besoin de vérifier si je peux me connecter ou non. Voici mon code jusqu'à présent:
public List<WebBrowser> myBrowsers = new List<WebBrowser>(); private void button3_Click(object sender, EventArgs e) { SqlConnection connection = new SqlConnection(connectionSsortingng); connection.Open(); SiteeeID = Convert.ToInt32(listBox1.SelectedValue); ssortingng url = "select http,username,pass,userID,passID,butonID from AyrintiSite where username!=''"; DataTable dt = new DataTable(); using (SqlConnection cn = new SqlConnection(connectionSsortingng)) { using (SqlCommand cm = new SqlCommand(url, cn)) { cn.Open(); dt.Load(cm.ExecuteReader()); } } for (int i = 0; i < dt.Rows.Count; i++) { WebBrowser browser = new WebBrowser(); browser.DocumentCompleted += webBrowserDocumentCompleted; browser.Navigate(dt.Rows[i][0].ToSsortingng()); myBrowsers.Add(browser); } } private void webBrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath) return; WebBrowser browser = sender as WebBrowser; browser.Document.GetElementById("KullaniciAdiTextBox").SetAtsortingbute("value", "username"); browser.Document.GetElementById("SifreTextBox").SetAtsortingbute("value", "pass"); browser.Document.GetElementById("SistemeGirImageButton").InvokeMember("click"); browser.DocumentCompleted -= webBrowserDocumentCompleted; browser.DocumentCompleted += webBrowserDestroyOnCompletion; } private void webBrowserDestroyOnCompletion(object sender, WebBrowserDocumentCompletedEventArgs e) { if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath) return; if (e.Url.AbsolutePath.Contains("Login")) { //send e-mail } WebBrowser browser = sender as WebBrowser; browser.Dispose(); myBrowsers.Remove(browser); }
maintenant j'ai 17 pages dans mon datatable. 10-12 d'entre eux peuvent se connecter correctement mais les autres ne peuvent pas et mon programme m'envoyer un e-mail. J'ai vérifié mille fois tout est OK sur ma database, tous devraient se connecter. Y a-t-il des erreurs sur mon code?
Naviguer vers l'URL suivante dans l'événement DocumentCompleted
Déclarez une variable pageIndex pour conserver l'index dans dt.rows:
int pageIndex=0 ;
Remplacez la boucle sur dt.rows par ce qui suit:
WebBrowser browser = new WebBrowser(); browser.DocumentCompleted += webBrowserDocumentCompleted; browser.Navigate(dt.Rows[pageIndex][0].ToSsortingng());
"Boucle" sur dt.rows dans l'événement DocumentCompleted:
private void webBrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath) return; WebBrowser browser = sender as WebBrowser; browser.Document.GetElementById( "KullaniciAdiTextBox").SetAtsortingbute("value", "username"); browser.Document.GetElementById( "SifreTextBox").SetAtsortingbute("value", "pass"); browser.Document.GetElementById( "SistemeGirImageButton").InvokeMember("click"); pageIndex++ ; If (pageIndex<dt.Rows.Count) browser.Navigate(dt.Rows[pageIndex][0].ToSsortingng()); }