powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Данные таблиц из SQL в DataGridView
25 сообщений из 51, страница 1 из 3
Данные таблиц из SQL в DataGridView
    #38127177
Здравствуйте!
Есть БД на SQL Server'е. Есть форма в C# с DataGridView и двумя кнопками: "Загрузить данные в DataGridView из БД" и "Добавить новые данные в DataGridView".

Пожалуйста, скажите:
1) Каким образом грамотно работать с SQL Server'ом из C#? (Я не прошу расписывать сложные алгоритмы, так как это долго и вам нет смысла тратить на меня много время. Просто хочется услышать, что-то вроде "Лучше использовать LINQ to SQL" или "Работай с Adapter'ом, bindingSourse'ом и DataSet'ом" или может что-то ещё...)

2) Пожалуйста, скиньте рабочий кусок кода (с комментариями или без них), который реализует работу первой кнопки "Загрузить данные в DataGridView из БД".
Причём, есть две таблицы в БД. Эти две таблицы (из обеих надо выбрать некоторые поля: Реклама.№, Реклама.Тип, Заказ.Месяц) надо поместить в DataGridView.

3) После того, как будет выполнен пункт №2, в DataGridView будет находиться информация из двух таблицах.
Как по нажатию на кнопку "Добавить новые данные в DataGridView" сделать так, чтобы появилась форма с полями идентичными столбцам в DataGridView и после заполнения полей и нажатия на кнопку "ОК" (эту часть я могу реализовать самостоятельно), данные полей записывались в ячейки DataGridView, а также записывались в БД.(а эту часть я НЕ знаю)

Примечание:(это как пример, чтобы было проще объяснить)
Структура БД:
Первая таблица: Реклама (№(PK), Тип, Расположение)
Вторая Таблица: Заказ (№(PK), Месяц, Стоимость)
Между ними связь: один-к-одному.

Столбцы в DataGridView: Реклама.№, Реклама.Тип, Заказ.Месяц


Это мой рабочий вариант реализации пункта №2:(не знаю насколько верно)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        private void button3_Click(object sender, EventArgs e)
        {
            string connectionString = "Data Source=.;Initial Catalog=Vortex;Integrated Security=True";
            string sql = "SELECT * FROM Advertisement"; //здесь берётся ТОЛЬКО ОДНА таблица, а надо две с определенными полями
            SqlConnection connection = new SqlConnection(connectionString);
            SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection);
            DataSet ds = new DataSet();
            connection.Open();
            dataadapter.Fill(ds, "Adv_table");
            connection.Close();
            dataGridView3.DataSource = ds;
            dataGridView3.DataMember = "Adv_table";
        }



Заранее всем огромное спасибо! Надеюсь на вашу помощь и понимание!
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38127195
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- Уберите ЭТО из button_click
- Используйте using для sqlconnection и не только
- Вам точно нужен SELECT * ?
- RTFM ;)
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38127267
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитриев Алексей,

Если приложение из разряда потренироваться, то:
1) Строку соединения в конфиг. Из конфига достается через ConfigurationManager.ConnectionStrings
2) Пример работы соединениями и командами: 13780958
3) Напрямую работать с ADO.NET нежелательно, для этого используется ORM ( Пример )
4) Про датаадаптеры, датасеты забудьте. Биндинг наше всё
5) Работу с БД уберите из формы вообще. Скиньте в отдельную сборку/класс
6) Про using(Dispose) и select * вам уже сказали
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38127329
Arm79,

попытаюсь собрать воедино всё, что вы посоветовали:
1) Нельзя выполнять никаких операций с БД в самой форме, при нажатии на кнопки и прочее. Как их скинуть в отдельную сборку/класс? (пожалуйста можно хотя бы минимальный пример)
2) Adapter'ы, DataSet'ы и LINQ to SQL использовать нежелательно. Все вопросы можно решить через bindingSourse.
3) Строку подключения надо убрать в "конфиг" (что это/как это?)
4) Мне надо изменить SQL-запрос, так как мой выводит все атрибуты таблицы.
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38127375
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грубо и только в качестве наброска.
Но в любом случае это гораздо лучше вашего варианта.

Код: c#
1.
2.
3.
4.
5.
        
private void button3_Click(object sender, EventArgs e)
{
    dataGridView3.DataSource = new BindingList<Advertisement>(Repository.Instance.GetAdvertisementList());
}




Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public sealed class Repository
{
private static Repository _repository = new Repository();
public static Repository Instance {get {return _repository;}}

private Repository() {}

public IList<Advertisement> GetAdvertisementList()
{
    using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString))
    {
         // Далее пример я приводил
    }
}
}




App.Config:
Код: xml
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="ConStr" connectionString="Data Source=.;Initial Catalog=Vortex;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>



Дмитриев АлексейМне надо изменить SQL-запрос
Меняйте. Как я понимаю, примеры, которые я привел, вы не посмотрели
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38127513
Arm79,
от всего выше сказанного легче не стало(
только ещё больше вопросов.

Пример по Business Logic Toolkit я прочитал. И тоже понятнее не стало.

Я не понимаю последовательности действий, которую мы выполняем, и как следствие не могу разобраться. Пожалуйста, Arm79 , на пальцах попытайтесь объяснить как по этапам производится подключение SQL, подсоединение к DataGridView и т.д.
Arm79 , заранее вам спасибо.
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38127531
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Умеете добавлять строку соединения в app.config?
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38127577
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример - набросок во вложении

Скрипт таблицы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
USE [test]
GO

CREATE TABLE [dbo].[Table_1](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[name] [nvarchar](128) NOT NULL,
	[comment] [nvarchar](400) NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128188
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Дмитриев Алексей,

Вы, главное, не верьте, что
Arm793) Напрямую работать с ADO.NET нежелательно, для этого используется ORM ( Пример )

Рассмотрим пример.
Можно и так, как описано в примере для адо. А можно через ADO и так.
Используя тот пример.

Код: c#
1.
2.
3.
4.
5.
6.
7.
DataTable GetPerson(int personId)
{
DataTable personDt;
personDataAdapter.SelectCommand.Parameters["@personId"] = personId;
personDataAdapter.Fill(personDt) 
return personDt
} 



Неправда ли короче и понятнее, чем ОРМ?
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128493
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Неправда ли короче и понятнее, чем ОРМ?

Угу. Только не забудьте рассказать, что в SelectCommand и как оно там оказалось...
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128590
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Cat2Неправда ли короче и понятнее, чем ОРМ?

Угу. Только не забудьте рассказать, что в SelectCommand и как оно там оказалось...Ну, и что не так с SelectCommand?
Недостающий код Вас не затруднит привести в качестве примера аргументации?
Двух строк "на все", думаю, будет достаточно...
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128605
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Неправда ли короче и понятнее, чем ОРМ?
Бррр...


sphinx_mvНу, и что не так с SelectCommand?
Недостающий код Вас не затруднит привести в качестве примера аргументации?
Двух строк "на все", думаю, будет достаточно...
Специально для тех, кто сильно ухватился за ручник - какая тебе еще нужна аргументация для захардкоженных запросов, без типизации результата, с абсолютно нулевым рефакторингом?
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128606
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvArm79пропущено...


Угу. Только не забудьте рассказать, что в SelectCommand и как оно там оказалось...Ну, и что не так с SelectCommand?
Недостающий код Вас не затруднит привести в качестве примера аргументации?
Двух строк "на все", думаю, будет достаточно...

мне лень копи-пастить мсдн. общий смысл состоит в том, что в select комманд также присваивается SqlCommand (руками или дизайнером)
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128659
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79sphinx_mvпропущено...
Ну, и что не так с SelectCommand?
Недостающий код Вас не затруднит привести в качестве примера аргументации?
Двух строк "на все", думаю, будет достаточно...

мне лень копи-пастить мсдн. общий смысл состоит в том, что в select комманд также присваивается SqlCommand (руками или дизайнером)А Вы бы все-таки не поленились и проаргументировали свое видение "общего смысла" примерами кода для ADO.NET. И рядышком (тоже сугубо для примера) все то же самое на любом из доступных Вам ORM - хоть "руками", хоть "дизайнером".

Хотя с примером для ADO.NET я Вам помогу - настучу на клавиатуре недостающие 2 (две) строки, которых "не хватало".
Это выглядит примерно как-то вот так:
Код: c#
1.
2.
SqlDataAdapter da = new SqlDataAdapter("select * from person a where a.personId = @personId", "какая-то строка подключения к БД");
da.SelectCommand.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));

Итого - вместе с декларацией метода и уже приведеным для него кодом - целых 7 (семь) строк.
Но уж с ORM-то Вы как-нибудь постарайтесь продемонстрировать "простоту и легкость".
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128696
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv,

Вы бы пример по ссылочке прочитали:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
Person GetPerson(int personId)
{
    using (DbManager db = new DbManager())
    {
        return db
            .SetCommand("SELECT * FROM Person p WHERE p.PersonId = @PersonId",  db.Parameter("@PersonId", personId))
            .ExecuteObject<Person>();
    }
}



Для списка вместо ExecuteObject используется ExecuteList

Как видите, в паре строчек и коннект с базой, и параметризированный запрос, и маппинг объектов, и типизация результата. Профит везде.
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128755
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
Person GetPerson(int personId)
{
    using (DbManager db = new DbManager())
    {
        return db
            .SetCommand("SELECT * FROM Person p WHERE p.PersonId = @PersonId",  db.Parameter("@PersonId", personId))
            .ExecuteObject<Person>();
    }
}





Код: c#
1.
2.
3.
4.
5.
6.
7.
public Person GetPerson(int personId)
{
    using (var db = new DbContext())
    {
        return db.Persons.SingleOrDefault(d => d.PersonId == personId);
    }
}
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128759
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv,
а в чем заморочки, при использования орм, сценарий у всех один
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
namespace Console
{
    class Program
    {
        static void Main()
        {
            new Configure("connect string"); //При старте апликейшен активизирукм комплекс орм

            using (ISession ses = Configure.GetSession())// Получаем конракт на работу из любого места программы, или из любого потока.
            {
                Person p = ses.Query<Person>().Single(p => p.id == 34);//все
            }
        }
    }

    //класс сущности
    [TableName("[person]")]
    class Person
    {
        [PrimaryKey("[id]")]
        public int id { get; set; }
        [ColumnName("[name]")]
        public string Name { get; set; }
         [ColumnName("[Adress]")]
        public string Adress { get; set; }
    }
}


костяк работы, наврядли изменится в ближайшее время.. три строчки
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128760
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиsphinx_mv, а в чем заморочки, при использования орм, сценарий у всех один
Заморочки в его неопытности. В остальном всё хорошо :)
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128784
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79sphinx_mv,

Вы бы пример по ссылочке прочитали:
:) Вы не поверите! Я его ПОЛНОСТЬЮ видел!
Arm79
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
Person GetPerson(int personId)
{
    using (DbManager db = new DbManager())
    {
        return db
            .SetCommand("SELECT * FROM Person p WHERE p.PersonId = @PersonId",  db.Parameter("@PersonId", personId))
            .ExecuteObject<Person>();
    }
}



Для списка вместо ExecuteObject используется ExecuteList

Как видите, в паре строчек и коннект с базой, и параметризированный запрос, и маппинг объектов, и типизация результата. Профит везде.С учетом того, что для работы с экземпляром класса и списком экземпляров нужны разные методы - смело умножаем на два.

И Вы точно ничего не "забыли"? Где описание класса Person ? Или Вы предполагаете, что ваш код "из двух строчек" без нее будет работать? И (как тут некотрые, типа, "намекают") совершенно без ручного рефакторинга в случае изменения запроса?
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128811
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvИ Вы точно ничего не "забыли"? Где описание класса Person ? Или Вы предполагаете, что ваш код "из двух строчек" без нее будет работать? И (как тут некотрые, типа, "намекают") совершенно без ручного рефакторинга в случае изменения запроса?
Про автогенерацию классов по схеме БД рассказывать, бестолочь?
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128833
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv,

Уважаемый, воинствующий фанатизм не к лицу никому.

Я со свой стороны привел пример на BLToolkit, максимально приближенный к ADO.NET, чтобы явно неопытный топикстартер хоть-что то понял.
И BLT также совершенно без ручного рефакторинга может работать. И у BLT есть вполне себе реализованный LINQ-провайдер .

sphinx_mvдля работы с экземпляром класса и списком экземпляров нужны разные методы - смело умножаем на два
Смело умножайте на 2 ваше невежество. Чем вам мешает список из одного элемента?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
IList<Person> GetPerson(int personId)
{
    using (DbManager db = new DbManager())
    {
        return db
            .SetCommand("SELECT * FROM Person p WHERE p.PersonId = @PersonId",  db.Parameter("@PersonId", personId))
            .ExecuteList<Person>();
    }
}



Вам привели код из BLT, Entity Framework, NHibernate. Везде кода минимум.
Если вы не умеете пользоваться ОРМ, это не значит, что они плохие. Это значит - вам учиться и учиться.
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38128876
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79sphinx_mv, Уважаемый, воинствующий фанатизм не к лицу никому.
Та такой там воинствующий, это унылый фрик :)
sphinx_mv
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38129464
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79sphinx_mv,

Уважаемый, воинствующий фанатизм не к лицу никому.
Улыбнуло...
Arm79Я со свой стороны привел пример на BLToolkit, максимально приближенный к ADO.NET, чтобы явно неопытный топикстартер хоть-что то понял.
Вот мне и интересно: с какой целью Вы пытаелись скрыть (типа, "за ненадобностью") при сравнении с ADO.NET от "явно неопытного топикпастера" необходимость реализации одного из ключевых моментов в Вашем примере, без чего пример становится физически неработотспособен?
Arm79Вам привели код из BLT, Entity Framework, NHibernate. Везде кода минимум.
Вы сравниваете ваш "минимум кода" с ADO.NET и у Вас получилось компактнее?!
Линейку подкорректировать не пробовали?
Arm79Если вы не умеете пользоваться ОРМ, это не значит, что они плохие. Это значит - вам учиться и учиться.Это означает, что мне совершенно перпендикулярна фанатичная вера некоторых "специалистов" в то, что "ORM спасет мир".
На самом деле, использование ORM - попытка скрыть недостаток знаний реляционных СУБД введением дополнительных уровней абстракций. Оно же - сокрытие под наслоениями кило/мегабайтов бесполезного кода личной некомпетентности програмистов-ORMщиков.
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38129477
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУsphinx_mvИ Вы точно ничего не "забыли"? Где описание класса Person ? Или Вы предполагаете, что ваш код "из двух строчек" без нее будет работать? И (как тут некотрые, типа, "намекают") совершенно без ручного рефакторинга в случае изменения запроса?
Про автогенерацию классов по схеме БД рассказывать, бестолочь? Расскажите... Или спойте...
Я уже запасся пивом и попкорном...

Вот Вам пример элементарного запроса для одного из самых распрастраненных промышленных серверов БД:
Код: plsql
1.
select * from departments;


Вот Вам таблица:
Код: plsql
1.
2.
3.
4.
5.
6.
create table departments (
dept_id   number(2),
dept_name varchar(20),
budget    number(11, 2),
projects  typ_projects_list
);


Вот Вам один пользовательский тип данных:
Код: plsql
1.
create type typ_project_list as varray (50) of typ_project;


Вот Вам второй пользовательский тип данных:
Код: plsql
1.
2.
3.
4.
5.
create type typ_project as object (
project_no number(2),
title      varchar2(30),
prj_cost   number(7, 2)
);


Хочу работающую "автогенерацию" классов - в Вашем личном исполнении.
...
Рейтинг: 0 / 0
Данные таблиц из SQL в DataGridView
    #38129546
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvЭто означает, что мне совершенно перпендикулярна фанатичная вера некоторых "специалистов" в то, что "ORM спасет мир".
На самом деле, использование ORM - попытка скрыть недостаток знаний реляционных СУБД введением дополнительных уровней абстракций. Оно же - сокрытие под наслоениями кило/мегабайтов бесполезного кода личной некомпетентности програмистов-ORMщиков.

Улыбнуло :-) Учитывая, что я как раз таки SQL-программист.
sphinx_mvВот мне и интересно: с какой целью Вы пытаелись скрыть (типа, "за ненадобностью")

Я честно просмотрел код и до сих пор не пойму, что именно я попытался скрыть?

sphinx_mv, я начинал с Delphi (c 3 по 7 версию), потом перешел на 2005 студию. Последние несколько лет я занимаюсь MS SQL и приложениями c# под него. И когда речь идет о работе непосредственно с таблицами в обход типизированных данных и ОРМ, я понимаю о чем речь. И с учетом МОЕГО опыта работы с БД я нахожу использование ОРМ гораздо более удобным и качественным.


По поводу автогеренации. Я дружу с MS SQL, уж не взыщите:
1) две таблицы + отношения между ними master-detail
2) все классы сгенерированы автоматом, при генерации модели из БД
3) Для BLT (ниже я для Entity Framework указал) автогенерация может осуществляется, к примеру, утилитой http://code.google.com/p/bltutilsvspackage/ или шаблоном http://www.mygenerationsoftware.com/TemplateLibrary/Template/?id=a1e54825-1926-43aa-8b1f-1addbab63b30

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
CREATE TABLE [dbo].[Table_1](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[name] [nvarchar](128) NOT NULL,
	[comment] [nvarchar](400) NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE TABLE [dbo].[Table_2](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[tbl1_id] [int] NOT NULL,
	[name2] [nvarchar](128) NOT NULL,
	[comment2] [nvarchar](400) NULL,
 CONSTRAINT [PK_Table_2] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]


ALTER TABLE [dbo].[Table_2]  WITH CHECK ADD  CONSTRAINT [FK_Table_2_Table_1] FOREIGN KEY([tbl1_id])
REFERENCES [dbo].[Table_1] ([id])
ON UPDATE CASCADE
ON DELETE CASCADE

ALTER TABLE [dbo].[Table_2] CHECK CONSTRAINT [FK_Table_2_Table_1]



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
//------------------------------------------------------------------------------
// <auto-generated>
//    This code was generated from a template.
//
//    Manual changes to this file may cause unexpected behavior in your application.
//    Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Entity
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    
    public partial class testEntities : DbContext
    {
        public testEntities()
            : base("name=testEntities")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
    
        public DbSet<Master> Table_1 { get; set; }
        public DbSet<Detail> Table_2 { get; set; }
    }
}



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
//------------------------------------------------------------------------------
// <auto-generated>
//    This code was generated from a template.
//
//    Manual changes to this file may cause unexpected behavior in your application.
//    Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Entity
{
    using System;
    using System.Collections.Generic;
    
    public partial class Detail
    {
        public int id { get; set; }
        public int tbl1_id { get; set; }
        public string name2 { get; set; }
        public string comment2 { get; set; }
    
        public virtual Master Table_1 { get; set; }
    }
}



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
//------------------------------------------------------------------------------
// <auto-generated>
//    This code was generated from a template.
//
//    Manual changes to this file may cause unexpected behavior in your application.
//    Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Entity
{
    using System;
    using System.Collections.Generic;
    
    public partial class Master
    {
        public Master()
        {
            this.Table_2 = new HashSet<Detail>();
        }
    
        public int Id { get; set; }
        public string Name { get; set; }
        public string Comment { get; set; }
    
        public virtual ICollection<Detail> Table_2 { get; set; }
    }
}



Удачного вам вечера :-)
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Данные таблиц из SQL в DataGridView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]