FoxTools.Ru - хитрые инструменты

FOX TOOLS

хитрые инструменты
Ваш IP:
38.107.179.243

Generate: Hash · Guid · Password
Encode: Url · XML/HTML · Base64 · HEX · Text · QR Coder · IDN
.NET Framework: VB .NET <=> C# · ASP .NET MachineKey · DB2Class
Network: HTTP · POP3
Graphics: ASCII Art

Создание классов из таблиц БД

Шаг 1 из 3. Выбор источника данных и языка






Допускаются только файлы в формате *.mdb.

Создать классы на языке:
Выберите язык программирования, на котором будут созданы классы таблиц базы данных.


Для чего это нужно?

Если вы программируете на Visual Basic .NET или C# и используете в ваших проектах базы данных MS Access или MS SQL Server, данный сервис поможет создавать объекты (классы) для ваших данных. Работать с классами значительно проще и удобней. Полностью исключаются опечатки в называниях таблиц и полей, конечный код получается безопасным, за счет явной типизации полностью исключается уязвимость типа SQL Injection. Благодаря ООП вы можете с легкостью создавать сложную иерархию данных.

Например, у вас есть таблица MyTable. Чтобы обратиться к ней обычным способом и получить, добавить, изменить или удалить данные, вам придется писать для этого соответствующие SQL-запросы, создавать Connection, Command, DataReader, DataTable, DataRow и т.п. Это довольно много кода.

Using myConn As New SqlConnection("Data Source=FOXTOOLS;Initial Catalog=foxtools;Trusted_Connection=True; ")
Dim myCmd As New SqlCommand("SELECT * FROM MyTable WHERE id = @id"), myConn)
myCmd.Parameters.Add("@id", SqlDbType.Int).Value = 1
Dim DR As SqlDataReader = myCmd.ExecuteReader()
'...
'...
End Using


Не исключено, что работая с именами таблиц и полей, вы можете допустить досадную опечатку, которая застопорит, пускай и ненадолго, весь рабочий процесс. В зависимости от вашего опыта, если вы будете формировать запросы голым SQL, не используя CommandParameters, ваш код будет уязвим для SQL Injection, что особо опасно в веб-программировании.

Dim myCmd As New SqlCommand("SELECT * FROM MyTable WHERE id = 1 AND name = '" & Request("name") & "'"), myConn)

Вполне возможно, что со временем вы просто забудете, какая структура у ваших данных и вам придется перелопатить немало кода, чтобы понять, что к чему.

При работе с объектами, по большому счету, вам не придется писать какой-либо код. У вас будет класс с именем вашей таблицы – MyTable, и у этого класса будут свойства – поля таблицы, и три метода для работы с данными – Load, Save, Delete. Вам не нужно помнить, какая структура у вашей БД. Работая с объектом, вы будете видеть, какие есть поля (свойства) у таблицы (класса) и сможете менять их значения. Вы не сможете допустить ошибку в именах полей и таблиц, т.к. у вас будут четко определенные имена классов и свойств. При желании, вы даже можете написать XML-комментарии к свойствам (полям) класса (таблицы), это еще больше упростит работу. SQL Injection исключена, вам не придется писать SQL-запросы самостоятельно, весь процесс полностью автоматизирован.

Добавляйте новые данные:

Dim t As New MyTable()
t.Name = "FoxTools"
t.Save()


Загружайте данные:

Dim t As New MyTable(1)
Console.WriteLine(t.Name)


Удаляйте данные:

Dim t As New MyTable(1)
t.Delete()


Все достаточно легко и знакомо, никаких Connection, Command и SQL-запросов, только объекты.

Объектное представление данных – это воистину удобно и просто!

Объектно-реляционное отображение

Объектно-реляционное отображение (Object-Relational Mapping - ORM) – это представление базы данных в виде набора классов. Работать с объектами, особенно в .NET Framework, значительно удобней и проще, нежели возиться с данными посредствам ADO .NET. Благодаря ORM, можно с легкость создавать и манипулировать сложнейшими вещами с огромным количеством связей данных. Но в тоже время, при работе с ORM необходимо хорошо продумывать архитектуру проекта, поскольку малейшие недочеты могут привести к тому, что придется переписывать большое количество кода.

Безопасность

FoxTools.Ru не сохраняет и не передает третьим лицам указываемые строки соединения с SQL Server.

FoxTools.Ru не передает базы данных и готовые классы третьим лицам. Все файлы хранятся на сервере не более 60 минут с момента создания/загрузки. Имена файлов уникальные и подобрать их невозможно.


 

Copyright © Алексей Немиро, 2010
@aleksey_nemiro facebook