
A példához szükséges az URLDb adatbázis, melyet a mellékelt Run.cmd BATCH állomány lefuttatásával hozhatunk létre. Csak arra kell ügyelni, hogy az URLDb.sql parancsállomány a BATCH állománnyal azonos mappában legyen. Az URLDb.sql parancsállomány 5. sorában adja meg helyesen a létrehozandó adatbázisfájlok mappájának nevét és elérési útvonalát.
A mellékelt állományok segítségével létrehozott URLDb adatbázis Table1 táblájában tároljuk az ellenőrzendő linkeket, a tábla Link oszlopában. Az alkalmazásunk lekérdezi azokat az URL-eket, melyek rekordjaiban a State oszlop értéke 1, és ezeket eltárolja egy DataTable (urldt) objektumban. Erre szolgál az URLQuery metódusunk.
private void URLQuery()
{
adapter = new SqlDataAdapter("SELECT Link FROM Table1 WHERE State = 1",sqlConnection1);
adapter.Fill(urldt);
}
A MŰVELET gomb megnyomásával elindítható az ellenőrzés, vagyis a hibás (törött) linkek kiszűrése. Erre a System.Net névtér osztályait használjuk fel, vagyis küldünk egy HTTP kérést az URL-ekre. Ehhez szükségünk van egy WebRequest objektumra a kérés elküldéséhez, és egy WebResponse objektumra a válasz fogadása érdekében.
WebRequest request = null;
WebResponse response = null;
Egy ciklussal végigmegyünk a DataTable rekordjain, és a linkeket átadjuk paraméterként a WebRequest osztály statikus Create metódusának.
for(int i=0;i<urldt.Rows.Count;i++)
{
try
{
link = (string)urldt.Rows[i]["Link"];
label3.Text = link;
request = WebRequest.Create(link);
response = request.GetResponse();
}
Amennyiben a kérés által megcélzott URL nem valós, akkor a kérés hibát eredményez, melyet elkapunk, és a hibás link karakterláncát a Form ListBox kontroljában megjelenítjük.
catch
{
listBox1.Items.Add(link);
}
A művelet végén lezárjuk a kapcsolatokat, és a következő linket vizsgáljuk.
finally
{
response.Close();
request.Abort();
...
A folyamat alakulását egy ProgressBar kontrollal jelezzük.