Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 11

sqlDataAdapter и вызов метода экземпляра класса

23.10.2021, 19:18. Показов 931. Ответов 0

Студворк — интернет-сервис помощи студентам
Здравствуйте, все. Я только изучаю C# и мои познания не столь глубоки, и вот уже второй день не могу понять, что не так, есть только догадки, помогите разобраться.

Имеем Form 1 с кодом следующего содержания:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
public partial class Coins : Form
string ConnectionString = @"Data Source=NORDEWIND-PC\SQLEXPRESS2014; Initial Catalog=Нумизматика; Integrated Security=true";
string QueryString = "select* from Монеты";
 
DataSet DataSet;
SqlDataAdapter sqlDataAdapter;
SqlCommandBuilder sqlCommandBuilder;
 
public void Connect()
{
    using (SqlConnection Connection = new SqlConnection(ConnectionString))
    {
    Connection.Open();
    sqlDataAdapter=new SqlDataAdapter(QueryString , Connection);
    sqlCommandBuilder=new SqlCommandBuilder(sqlDataAdapter);
    sqlDataAdapter.Update(DataSet);
    }
}


Настроил, значит, я работу с базой данных, создаю метод, добавляющий строку:

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
public void Add_Coin(string nominal, int year, string dvor, string diameter, double mass, string tirazh, string material, string gurt, string raznovid, int pravitel)
{
    if (int.TryParse(dataGridView1[0 , DataSet.Tables[0].Rows.Count-1].Value.ToString() , out int index))
    {
    Connect();
    DataSet.Tables[0].Rows.Add(index+1 , nominal , year, dvor, diameter, mass, tirazh, material, gurt, raznovid, pravitel);
    Connect();
    }
}


Затем в первой форме я вызываю вторую форму, на которой идёт заполнение БД записями:

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
private void Add_button_Click(object sender , EventArgs e)
{
AddCoin AddCoin = new AddCoin();
AddCoin.Show();
}


Во второй форме создаю объект класса Coins, инициализирую переменные, которые меняют значение в текстбоксах и комбобоксах:

Кликните здесь для просмотра всего текста
C#
1
2
3
4
Coins coins = new Coins();
string addNominal="-", addDvor="-", addMaterial="-", addGurt="-",addRaznovid="-", addDiameter="", addTirazh = "";
double addMass=0;
int addYear = 0, addIDPravitel=1;


И вот чудесный момент добавления записи в БД вызовом метода у экземпляра класса Coins:

Кликните здесь для просмотра всего текста
C#
1
2
3
4
private void Add_button_Click(object sender , EventArgs e)
{
coins.Add_Coin(addNominal , addYear , addDvor , addDiameter , addMass , addTirazh , addMaterial , addGurt , addRaznovid, addIDPravitel);
}


И вот тут у меня затык: запись в БД добавляется нормально, как я хочу, это видо и по работе в MS SQL Management Studio 2014 и при повторном заруске приложения, т.е. при перезапуске я вижу БД с новой строкой (отображаю в dataGridView1), но вот после нажатия кнопки "добавить" на Form 2, dataGridView1 не обновляется, хотя в этой кнопке идёт вызов метода, содержащего вызов другого метода Connect(), в котором уже обновляется содержимое DataSet.
Однако, если разместить аналогичный код с вызовом Add_Coin в Form 1, то всё работает так же замечательно, но dataGridView1 обновляется, сразу почле нажатия кнопки (по событию).

Вопрос: как это побороть? Т.е. чтобы после заполнения полей на Form 2 и нажатия кнопки "Добавить", не только добавлялись данные в БД, но и сразу обновлялся dataGridView1 с формы Form 1.
Если я правильно понимаю, то это связано с созданием экземпляра класса, в отличии от работы с методом напрямую при размещении в Form 1, тогда как это исправить?

Заранее спасибо за советы.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.10.2021, 19:18
Ответы с готовыми решениями:

Вызов метода из экземпляра другой формы
Выручайте. Начал разбираться с c#. Проект расположен на двух формах. На первой форме при нажатии кнопки должна срабатывать процедура,...

Вызов метода класса Form1 из другого класса
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Создание экземпляра класса по имени, и вызов его метода
Снова приветствую Вас, гости форума! Столкнулся с некой задачей. Мне нужно создать экземпляра класса по имени, и вызов одного из его...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.10.2021, 19:18
Помогаю со студенческими работами здесь

Полиморфизм: вызов метода базового класса, переопределенного метода и нового метода
В базовом классе метод помечен как virtual. Насколько я понял из книги: override означает, что метод не утрачивает связи с базовым...

Создать экземпляр метода класса или доступ к методу из экземпляра класса
Всем доброго времени суток!) Уже месяца как 2 не сишарпил и подзабыл...собственно задача такая: Создать отдельный экземпляр класса для...

Вызов метода без создания экземпляра типа
Доброго времени суток, ув. форумчане! У меня вот такая ситуация public partial class Form1 : Form // есть класс Form { ...

Вызов методов классов друг у друга (вызов метода из другого класса)
Есть несколько классов, которые могут вызывать методы (функции) друг у друга. Логика: класс1 имеет метод А, класс2 имеет метод Б, класс1...

Вызов метода из метода другого класса
Хочу оптимизировать код, подскажите,как это лучше сделать. У меня есть два класса, в Классе1 есть Метод1, в котором меняются значения полей...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru