Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 87
MS SQL

Загрузить данные в таблицу

18.09.2019, 11:42. Показов 3247. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как подобным методом загрузить данные в таблицу, но при этом название таблицы мы берем из TextBox?

C#
1
 this.паркиTableAdapter.Fill(this.proba38DataSet.Парки);
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.09.2019, 11:42
Ответы с готовыми решениями:

Загрузить таблицу из datagrid в БД
есть datagrid таблица с информацией, идея заключается в том, что полностью загрузить таблицу из datagrid в бд string connectionStr =...

Как загрузить данные в таблицу
У меня на диске C: есть текстовый файл c:\x.txt, как можно этот файл загрузить в таблицу? <?php $server = "localhost"; ...

Данные из Excel файла загрузить в таблицу БД
Здравствуйте. может подскажете как одну штуку сделать: Работаю в microsoft Visual Basic 2010, подключил базу, вывел данные, вообщем всё как...

20
 Аватар для Aferuga
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
19.09.2019, 03:14
Можно как-то так:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
            SqlConnection rt = new SqlConnection(My.Properties.Settings.Default.MyConnectionString);
            rt.Open();
 
            string s = "select * from " + textBox1.Text;
            SqlCommand cmd = new SqlCommand(s, rt);
 
            da2.SelectCommand = cmd;
            SqlCommandBuilder scb = new SqlCommandBuilder(da2);
 
            da2.InsertCommand = scb.GetInsertCommand();
            da2.DeleteCommand = scb.GetDeleteCommand();
            da2.UpdateCommand = scb.GetUpdateCommand();
            da2.Fill(myDataSet, textBox1.Text));
0
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 87
19.09.2019, 08:30  [ТС]
А что здесь значит da2?
0
 Аватар для Aferuga
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
19.09.2019, 08:39
C#
1
public SqlDataAdapter da2 = new SqlDataAdapter();
0
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 87
19.09.2019, 08:51  [ТС]
C#
1
2
3
                da2.InsertCommand = scb.GetInsertCommand();
                da2.DeleteCommand = scb.GetDeleteCommand();
                da2.UpdateCommand = scb.GetUpdateCommand();
В этих командах ошибки выдает

Добавлено через 1 минуту
Суть в том, что я пытаюсь создать таблицу на новой форме, которая создается динамически.
0
 Аватар для Aferuga
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
19.09.2019, 09:26
Цитата Сообщение от Alexsandr_97 Посмотреть сообщение
В этих командах ошибки выдает
Какие именно? Возможно не хватает библиотеки(правда в этом случае ошибка велезла бы выше):
C#
1
using System.Data.SqlClient;
Цитата Сообщение от Alexsandr_97 Посмотреть сообщение
Суть в том, что я пытаюсь создать таблицу на новой форме, которая создается динамически.
Подход выше подразумевает что таблица уже создана в бд, а её схема есть в DataSet. Все что нужно для загрузки/эксплуатации таблицы это указать её имя. Если же вы хотите добавить таблицу в БД/DataSet программно, то это уже другой разговор, а не то что вы написали в топике.
0
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 87
19.09.2019, 09:35  [ТС]
Данная библиотека у меня есть, но ошибку выдает.

Цитата Сообщение от Aferuga Посмотреть сообщение
Подход выше подразумевает что таблица уже создана в бд, а её схема есть в DataSet.
По сути, я таблицу создаю до того как начинаю ее использовать.
0
 Аватар для Aferuga
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
19.09.2019, 09:43
Цитата Сообщение от Alexsandr_97 Посмотреть сообщение
Данная библиотека у меня есть, но ошибку выдает.
Что в ошибке то пишут?
0
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 87
19.09.2019, 09:46  [ТС]
System.Data.SqlClient.SqlException: "Cannot find the object "dbo.Крыс " because it does not exist or you do not have permissions."

Добавлено через 29 секунд
Я проверил, таблицы создаются.
0
 Аватар для Kazbek17
1483 / 938 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
19.09.2019, 14:07
Alexsandr_97, Запрос покажите полностью. Что вы отправляете.
0
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 87
19.09.2019, 14:38  [ТС]
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
                string n = comboBox1.Text;
                
                    DataGridView newDGV = new DataGridView();
 
                string connectionString = @"Data Source=DESKTOP-FLUQ9QM\MYMSSQLSERVER;
            Initial Catalog=Proba38;Integrated Security=True";
 
 
                string query = @"
CREATE TABLE [dbo].["+n+ @"](
    [ID] [int] NOT NULL,
    [Насаждения] [nchar](50) NOT NULL,
    [Количество] [int] NULL,
    [Служащий] [nchar](50) NOT NULL,
 CONSTRAINT [PK_" + n + @"_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]
 
 
ALTER TABLE [dbo].[" + n + @"]  WITH CHECK ADD  CONSTRAINT [FK_" + n + @"_Парки] FOREIGN KEY([ID])
REFERENCES [dbo].[Парки] ([ID])
 
ALTER TABLE [dbo].[" + n + @"] CHECK CONSTRAINT [FK_" + n + @"_Парки]
 
ALTER TABLE [dbo].[" + n + @"]  WITH CHECK ADD  CONSTRAINT [FK_" + n + @"_Растения] FOREIGN KEY([Насаждения])
REFERENCES [dbo].[Растения] ([Название])
 
ALTER TABLE [dbo].[" + n + @"] CHECK CONSTRAINT [FK_" + n + @"_Растения]
 
ALTER TABLE [dbo].[" + n + @"]  WITH CHECK ADD  CONSTRAINT [FK_" + n + @"_Служители] FOREIGN KEY([Служащий])
REFERENCES [dbo].[Служители] ([ФИО])
 
ALTER TABLE [dbo].[" + n + @"] CHECK CONSTRAINT [FK_" + n + @"_Служители]
 
 
SELECT [ID]
      ,[Насаждения]
      ,[Количество]
      ,[Служащий]
  FROM [dbo].[" + n + @"]
 
 
";
 
            
                SqlDataAdapter da2 = new SqlDataAdapter();
 
                SqlConnection rt = new SqlConnection(connectionString);
                rt.Open();
 
                SqlCommand cmd = new SqlCommand(query, rt);
 
                da2.SelectCommand = cmd;
                SqlCommandBuilder scb = new SqlCommandBuilder(da2);
 
                da2.InsertCommand = scb.GetInsertCommand();
                da2.DeleteCommand = scb.GetDeleteCommand();
                da2.UpdateCommand = scb.GetUpdateCommand();
 
                da2.Fill(proba38DataSet, n);
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
19.09.2019, 15:07
Alexsandr_97, этого достаточно, чтобы создать таблицу
C#
1
2
3
4
5
SqlConnection rt = new SqlConnection(connectionString);
rt.Open();
SqlCommand cmd = new SqlCommand(query, rt);
cmd.ExecuteNonQuery();
rt.Close();
Только не понятно, зачем это нужно, смысла в этом точно нет.
0
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 87
19.09.2019, 15:17  [ТС]
Окей.

А как ее вывести в DataGridView?
0
.NET
133 / 91 / 44
Регистрация: 17.08.2015
Сообщений: 296
19.09.2019, 15:46
Цитата Сообщение от Alexsandr_97 Посмотреть сообщение
А как ее вывести в DataGridView?
Собственно привязать DataSet к DataGrid? не знаю как это делается на WF, но вроде в дизайнере есть кнопочка

Добавлено через 5 минут
попробуй так
C#
1
dataGridView1.DataSource = proba38DataSet.Парки;
Добавлено через 2 минуты
Накидал на своей тестовой базе набросок
Надеюсь поймёшь что куда
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
string connectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=test;Integrated Security=True";
            string sql = "select * FROM [Orders]";
            SqlConnection sqlconnection = new SqlConnection();
            try
            {
                sqlconnection = new SqlConnection(connectionString);
                SqlCommand command = new SqlCommand(sql, sqlconnection);
                orderAdapter = new SqlDataAdapter(command);
 
                ordersTable = new DataTable();
                orderAdapter.Fill(ordersTable);
                dataGridView1.DataSource = ordersTable.DefaultView;
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
            finally
            {
                if (sqlconnection.State == ConnectionState.Open)
                    sqlconnection.Close();
            }
0
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 87
19.09.2019, 16:25  [ТС]
Ругается на orderAdapter и ordersTable

Добавлено через 2 минуты
Цитата Сообщение от M1ke423 Посмотреть сообщение
попробуй так

dataGridView1.DataSource = proba38DataSet.Парки;
Будь так все просто...

Я то заранее имя таблицы не знаю и достаю его из comboBox
0
 Аватар для Aferuga
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
20.09.2019, 08:30
Цитата Сообщение от Alexsandr_97 Посмотреть сообщение
По сути, я таблицу создаю до того как начинаю ее использовать.
А зачем пихать создание таблицы в select-запрос?
Цитата Сообщение от Alexsandr_97 Посмотреть сообщение
Будь так все просто...
Да все и так просто. На самом деле нужно было создать один внешний ключ и возможно одну таблицу, а не плодить кучу одинаковых таблиц и создавать себе проблемы на ровном месте.
0
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 87
20.09.2019, 08:55  [ТС]
Цитата Сообщение от Aferuga Посмотреть сообщение
На самом деле нужно было создать один внешний ключ и возможно одну таблицу, а не плодить кучу одинаковых таблиц и создавать себе проблемы на ровном месте.
Нет, как раз в этом все и дело.

Просто я разанее не знаю название таблицы, которую я создаю.

А после хочу открыть ее на новой форме.

И как в dataset добавить имя новой таблицы я не знаю.

Добавлено через 1 минуту
Я имею ввиду:
C#
1
dataGridView1.DataSource = proba38DataSet.ИМЯ;
0
.NET
133 / 91 / 44
Регистрация: 17.08.2015
Сообщений: 296
20.09.2019, 10:22
Цитата Сообщение от Alexsandr_97 Посмотреть сообщение
Нет, как раз в этом все и дело.
Просто я разанее не знаю название таблицы, которую я создаю.
А после хочу открыть ее на новой форме.
И как в dataset добавить имя новой таблицы я не знаю.
Вы наверное просто ждёте готовый код?
На примере моей базы
orderAdapter и ordersTable нужно инициализировать
Но если вы создаёте таблицу с комбобокса, то надо где то хранить её название чтобы выводить потом. Этого я уже не делал

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
32
33
34
35
36
private void button1_Click(object sender, EventArgs e)
        {
            string connectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=test;Integrated Security=True";
            string sql = @"CREATE TABLE [dbo].[" + comboBox1.SelectedItem + @"] (
    [Idorders] INT IDENTITY (1, 1) NOT NULL,
    [Username] NVARCHAR(50) NULL,
    [Money] INT NULL,
    [Date]     DATETIME DEFAULT(getdate()) NULL,
    PRIMARY KEY CLUSTERED([Idorders] ASC));
    
    INSERT INTO [dbo].["+ comboBox1.SelectedItem + @"] (Username, Money, Date) VALUES ('Test', '123456', '10.10.2019')
    
    SELECT * FROM ["+comboBox1.SelectedItem+"]";
            MessageBox.Show("База создана: " + comboBox1.SelectedItem);
            SqlConnection sqlconnection = new SqlConnection();
            try
            {
                sqlconnection = new SqlConnection(connectionString);
                SqlCommand command = new SqlCommand(sql, sqlconnection);
                orderAdapter = new SqlDataAdapter(command);
 
                ordersTable = new DataTable();
                orderAdapter.Fill(ordersTable);
                dataGridView1.DataSource = ordersTable.DefaultView;
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
            finally
            {
                if (sqlconnection.State == ConnectionState.Open)
                    sqlconnection.Close();
            }
 
        }
0
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 87
20.09.2019, 10:38  [ТС]
У нас видимо возникло некое недопонимание.

У меня на форме есть таблица, которая содержит названия других таблиц.
Я создаю там новую запись (и новую таблицу соответственно) и пытаюсь ее вывести на новой форме, на которой находится DataGridView.

Как как заранее имя новой таблицы я не знаю (и ее нет в базе), то возникает проблема: как к DataGridView подключить созданную таблицу.

ComboBox используется только для выбора таблицы, которую я хочу открыть на форме.
0
.NET
133 / 91 / 44
Регистрация: 17.08.2015
Сообщений: 296
20.09.2019, 11:03
Цитата Сообщение от Alexsandr_97 Посмотреть сообщение
ComboBox используется только для выбора таблицы
Если при создании новой таблицы её имя вносится в ComboBox, то пишите такой запрос
C#
1
SELECT * FROM ["+comboBox1.SelectedItem+"]";
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.09.2019, 11:03
Помогаю со студенческими работами здесь

Как загрузить данные из БД в таблицу на JSP странице
Здравствуйте! Подскажите пожалуйста, каким образом можно отобразить данные полученные из БД в результате выборки в виде таблицы на JSP...

Stringrid. Как загрузить текстовые данные из файла в таблицу
Здравствуйте! Кто может, подскажите пожалуйста. Как из тестового файла поместить данные типа String в таблицу. Например в текстовом...

Как сделать кнопку "Загрузить в таблицу N данные с диска или дискеты"
Как сделать кнопку на форме 'Загрузить в таблицу N данные с диска или дискеты' данные содержатся в txt файлике.

FoxPro: в программу на Delphi загрузить dbf-таблицу и эту же таблицу сохранить, как txt
Здравствуйте! Помогите, пожалуйста!!!!!!! Нужен код. В программу на Delphi загрузить dbf-таблицу и эту же таблицу сохранить как txt.

Загрузить файл в таблицу
есть файл, толи база данных для определённой программы, нужно ее загрузить в таблицу и сохранить в такомже формате. Нужно Загрузить в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru