ля створення графічних користувацьких інтерфейсів (на зразок Button, MenuStrip, ProgressBar і DataGridView), всі вони є похідними від базового класу Control. Елементи управління допускають настройку на етапі проектування та видимі (за замовчуванням) під час виконання;
· Компоненти. Це типи, що не породжені від базового класу Control, але все-таки можуть надавати програмам Windows Forms візуальні можливості (наприклад, ToolTip і ErrorProvider). Багато компонентів (наприклад, Timer і System.ComponentModel.BackgroundWorker) не видимі під час виконання, але все-таки допускають настройку на етапі проектування;
· Вікна стандартних діалогів. У Windows Forms є кілька заготовлених діалогових вікон для поширених операцій (наприклад, OpenFileDialog, PrintDialog і ColorDialog).
У світі Windows Forms тип Form представляє будь-яке вікно в додатку, включаючи головне вікно самого верхнього рівня, дочірні вікна додатків з багатодокументним інтерфейсом (multiple document interface? MDI), а також модальні та немодальні діалогові вікна. Тип Form містить безліч можливостей, успадкованих від класів-предків, а також з реалізованих їм численних інтерфейсів.
Для повноцінного породження типу Form потрібні і багато інші базові класи та інтерфейси, але навіть професійному розробнику Windows Forms зовсім не обов'язково знати ролі всіх членів всіх класів або реалізованих інтерфейсів.
Для створення нового проекту в Visual Studio виберемо «New» - «Project», у вікні виберемо «Windows Form Application» і заповнимо запропоновані поля.
Для передачі запиту SQL сервера і поверненню результату у вигляді набору рядків (запити на вибірку) був реалізований метод «GetSQLData», представлений нижче.
Як параметр метод приймає рядок-запит, в якості значення, що повертається має тип «DataTable»? таблицю даних.
public static DataTable GetSQLData (string query)
{ds=new DataSet (); myConnection=new SqlConnection (Config.ConnectionString);
{. Open ();
} (Exception e1)
{. Show (e1.ToString ());
} comm=new SqlCommand (query) ;. CommandType=System.Data.CommandType.Text; .Connection=myConnection; dataAdapter=new SqlDataAdapter (comm);
{= new DataSet () ;. Fill (ds);
}
{. Show ( Error );
}
{. Close ();
} (Exception e3)
{. Show (e3.ToString ());
} ds.Tables [0];
}
Для передачі запиту SQL сервера без повернення результату (запити на вставку, зміна та видалення) був реалізований метод «SetSQLData», представлений нижче. Як параметр метод приймає рядок-запит і не має повертається типу значення.
public static void SetSQLData (string query)
{myConnection=new SqlConnection (Config.ConnectionString);
{. Open ();
} (Exception e1)
{. Show (e1.ToString ());
} comm=new SqlCommand (query) ;. CommandType=System.Data.CommandType.Text; .Connection=myConnection; .ExecuteNonQuery ();
{. Close ();
} (Exception e3)
{. Show (e3.ToString ()) ;;
}
}
Для того, щоб користувачеві не доводилося вводити рядок підключення до бази даних також необхідно створити клас і файл конфігурації, які зберігали б і дозволяли змінювати налаштування програми. Для цих цілей були створені відповідно клас «Config» і файл конфігурації «App.config»
class Config
{static string ConnectionString=GetParam ( ConnectionStringSql ); string Connection
{
{ConnectionString;
}
{= value;
}
} static string GetPathTo (string ParamName)
{Application.StartupPath + .OpenExeConfiguration (ConfigurationUserLevel.None) .AppSettings.Settings [ParamName] .Value;
}
}
}
Змінна «Connection» цього класу є рядком для з'єднання з сервером. При запуску вона ініціалізується з файлу налаштувань за допомогою методу «GetParam», представленого нижче.
public static string GetParam (string ParamName)
{ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).AppSetti...