C # DataAccess Обновление, Вставка, Удалить - PullRequest
0 голосов
/ 12 декабря 2011

Я - новорожденный программист, который в настоящее время изучает функции вставки, обновления и удаления в ASP.NET C #. Теперь я получил небольшую поддержку от друга, который был достаточно дружелюбен, чтобы написать DataAccess для меня (я думаю, это BLL), прежде чем он ушел на работу.

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

Теперь у меня есть много кодов в DataAccess, но я думаю, что я должен сконцентрироваться на этом:

/// <summary>
/// Used for Create/Update/Delete etc.
/// </summary>
public void Execute(string query)
{
    SqlCommand comm = GetSqlCommand(query);

    _conn.Open();
    comm.ExecuteNonQuery();
    _conn.Close();
}

И мне интересно:

  1. Как использовать вставку, обновление и удаление из файла DataAccess
  2. Что я должен поместить на мою страницу .aspx?

Я надеюсь, что мои вопросы не слишком "большая" область, чтобы объяснить, если вы понимаете, о чем я :) Любая помощь более чем ценится, ребята!

С уважением, Mike

Ответы [ 4 ]

0 голосов
/ 12 декабря 2011

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

Вы можете использовать Linq (для SQl).

У Скотта Гатри есть серия статей, с которых можно начать.

Я сделаю ссылку на статью 8, которая содержит ссылки на предыдущие части.

http://weblogs.asp.net/scottgu/archive/2007/08/27/linq-to-sql-part-8-executing-custom-sql-expressions.aspx

Вы должны получить то, что вам нужно, из частей 1 - 4.

По сути, LINQ позволит вам выполнять запросы к базе данных, похожие на SQLquery, либо так:

MyDatabaseContext db = new MyDatabaseContext();

var res = from item in db.Table
where item.Column == 2
select item;
//or using Lambda expressions
var res2= db.Table.Where(x => x.Column == 1);

Это должно позволить вам самостоятельно расширить различные методы и начать работу с Linq, что очень удобно. :)

Надеюсь, это поможет.

0 голосов
/ 12 декабря 2011

Вы можете создать методы в файле DataAccess.cs для insert, update и detele.Затем вы можете использовать этот метод в ваших .aspx файлах.

Ознакомьтесь с этой статьей о Создание уровня доступа к данным в приложениях ASP.Net для вставки, выбора, удаления и обновления данных и Создание уровня доступа к данным , который даст вам правильное представление о процессе.

Надеюсь, это поможет

0 голосов
/ 12 декабря 2011

ааа привет майк, давайте рассмотрим n-уровневую архитектуру:

DB <-> DAL <-> BLL <-> PL

пример кода, который вы пишете в своем вопросе, является частью слоя DAL, а не слоя BLL

о первом вопросе:

это зависит от вашей архитектуры. если у вас трехуровневый подход, то в вашем aspx-файле просто напишите что-то вроде этого:

new DAL().Execute("INSERT INTO TABLE TABLENAME VALUES (...)");

но если у вас 4-уровневый подход, вы просто помещаете этот (последний упомянутый код) код в ваши классы BLL и в свой aspx-файл вызываете метод из классов BLL.

но у меня есть другое предложение для вас, мой друг, используйте более новую технику, такую ​​как LinQ или Entity Framework, для создания слоя DLL, а затем создайте слой BLL.

если вам нужна дополнительная помощь, прокомментируйте меня, чтобы отредактировать мой ответ или опубликуйте другой ответ для получения более подробной информации.

спасибо, Али

0 голосов
/ 12 декабря 2011

Чтобы использовать функцию Execute, вы должны написать SQL-операторы, которые должны быть выполнены. Ваш слой доступа к данным, кажется, работает так. Но это не то, что я ожидал от DAL (уровня доступа к данным), он должен полностью инкапсулировать доступ к данным, так что BLL (уровень бизнес-логики) не должен знать, как работает база данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...