Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
dimakov
Заблокирован
1

Как вносить изменения в БД?

10.10.2014, 18:12. Просмотров 1856. Ответов 14
Метки нет (Все метки)

Добрый вечер.
Недавно начал осваивать С#, и вот очередь дошла до баз данных для приложений.

Создал базу данных, заполнил "руками" одну таблицу.
Обращаюсь к ее ячейкам через адаптер как-то так:
C#
1
2
DataBaseSetTableAdapters.MP20TableAdapter timetable = new DataBaseSetTableAdapters.MP20TableAdapter();
button.Text = timetable.GetData().Rows[dayAt][lesson].ToString();
И все отлично.

Но как изменить значение ячейки? Все интернеты прорыл и не смог разобраться.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2014, 18:12
Ответы с готовыми решениями:

Вносить изменение в базу sql путем редактирования datagridview
помогите пожалуйста люди добрые уже неделю не могу реализовать нужно чтобы при...

Как сохранить изменения в БД
Помогите разобраться в сохранении БД. создаю программно доступ к БД по типу ...

Как сохранить изменения в БД
Здравствуйте, ув. форумчане. Прочитал много тем про сохранение в бд access,...

Как сохранить изменения dataset в БД
Изменения сохраняются в dataset, а как сделать чтобы изменения сохранялись...

Как сохранить изменения в таблице
Как сохранить изменения в таблице using System; using...

14
Defazze
317 / 128 / 28
Регистрация: 18.09.2014
Сообщений: 167
10.10.2014, 22:09 2
Если Вы только начали изучать эту тему, то рекомендую по вопросу взаимодействия с базами данных ознакомиться с технологией Entity Framework. Она намного легче осваивается и гораздо удобнее в использовании.
1
dimakov
Заблокирован
10.10.2014, 23:05  [ТС] 3
Цитата Сообщение от Defazze Посмотреть сообщение
Если Вы только начали изучать эту тему, то рекомендую по вопросу взаимодействия с базами данных ознакомиться с технологией Entity Framework. Она намного легче осваивается и гораздо удобнее в использовании.
Большое спасибо!
Я слышал про это решение, но в данном случае мне необходимо обойтись стандартными средствами. Не могли бы вы мне помочь с этим?
0
insite2012
Модератор
Эксперт .NET
4865 / 3818 / 1096
Регистрация: 12.10.2013
Сообщений: 11,095
Записей в блоге: 2
11.10.2014, 10:18 4
dimakov, если уж вы работаете с адаптером, используйте автономный уровень ADO NET. Получили через адаптер таблицу, отредактировали ее и отправили назад в базу через тот же адаптер.
0
dimakov
Заблокирован
11.10.2014, 14:43  [ТС] 5
Цитата Сообщение от insite2012 Посмотреть сообщение
dimakov, если уж вы работаете с адаптером, используйте автономный уровень ADO NET. Получили через адаптер таблицу, отредактировали ее и отправили назад в базу через тот же адаптер.
А не могли бы Вы привести пример кода, как это можно реализовать?
0
insite2012
Модератор
Эксперт .NET
4865 / 3818 / 1096
Регистрация: 12.10.2013
Сообщений: 11,095
Записей в блоге: 2
11.10.2014, 14:53 6
Цитата Сообщение от dimakov Посмотреть сообщение
не могли бы Вы привести пример кода
Почему нет. Сейчас, подождите немного...
0
insite2012
Модератор
Эксперт .NET
4865 / 3818 / 1096
Регистрация: 12.10.2013
Сообщений: 11,095
Записей в блоге: 2
11.10.2014, 15:06 7
Вот код и архив с примером. Использовал БД Access, но так же можно и с другими работать...
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
using System.Data.OleDb;
 
namespace DBTest
{
    public partial class Form1 : Form
    {
        OleDbDataAdapter adapter;
 
        public Form1()
        {
            InitializeComponent();
            this.Load += new EventHandler(Form1_Load);
            btnUpdateDataBase.Click += new EventHandler(btnUpdateDataBase_Click);
        }
 
        void btnUpdateDataBase_Click(object sender, EventArgs e)
        {
            DataTable updatedDt = (DataTable)dataGridView1.DataSource;
            adapter.Update(updatedDt);
        }
 
        void Form1_Load(object sender, EventArgs e)
        {
            string path = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "TestBase.mdb");
            string cnnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path; ;
            adapter = new OleDbDataAdapter("SELECT * FROM TestTable", cnnStr);
            OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
 
            DataTable dt = new DataTable("TestTable");
            adapter.Fill(dt);
            dataGridView1.DataSource = dt;
        }
    }
}
1
Вложения
Тип файла: rar DBTest.rar (46.8 Кб, 32 просмотров)
adlansuliman
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 189
13.10.2014, 17:38 8
Как сохранить в веденные данные в сам файл Access. Пробую эту команду
C#
1
            this.loginTableAdapter.Update(this.labDataSet.Login);
но она сохраняет на виртуальную память а не в сам файл. Как сделать чтобы и в файл тоже сохраняла? Вот полный код
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
63
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            this.loginTableAdapter.Fill(this.labDataSet.Login);
        }
 
        OleDbConnection conn;
        string login;
        string password;
        private void button1_Click(object sender, EventArgs e)
        {
            login = textBox1.Text;
            password = textBox2.Text;
            try 
            {
                conn = new OleDbConnection(Properties.Settings.Default.labConnectionString);
                conn.Open(); 
                string command = "SELECT login, password FROM Login WHERE login = @login AND password = @password";
                OleDbCommand  com = new OleDbCommand(command, conn);
                com.Parameters.AddWithValue("@Логин", login);
                com.Parameters.AddWithValue("@Пароль", password);
                OleDbDataReader reader;
                reader = com.ExecuteReader();
                if (reader.Read()) { 
                    MessageBox.Show("Yes");
                    conn.Close();
                }
                else 
                {
                    MessageBox.Show("No");
                    conn.Close();
                }
            }
            catch (Exception ex) 
            {
                MessageBox.Show(ex.Message); 
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            this.loginTableAdapter.Update(this.labDataSet.Login);
        }
    }
}
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
13.10.2014, 19:04 9
adlansuliman, что то очень сильное сходство с кодом, который я писал недавно в другой теме...
а вообще Как вносить изменения в БД?

Добавлено через 1 минуту
C#
1
2
                com.Parameters.AddWithValue("@Логин", login);
                com.Parameters.AddWithValue("@Пароль", password);
это неправильно, вот правильно
C#
1
2
                com.Parameters.AddWithValue("@login", login);
                com.Parameters.AddWithValue("@password", password);
0
adlansuliman
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 189
13.10.2014, 19:05 10
это тоже моя тема, с разных компов, разные учетки. Так что с сохранением? У меня только на вирт. память сохраняется
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
13.10.2014, 19:06 11
adlansuliman, я ссылку бросил, там очень хороший пример
0
adlansuliman
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 189
13.10.2014, 19:48 12
C#
1
2
3
4
5
6
7
8
string path = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "TestBase.mdb");
            string cnnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path; ;
            adapter = new OleDbDataAdapter("SELECT * FROM TestTable", cnnStr);
            OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
 
            DataTable dt = new DataTable("TestTable");
            adapter.Fill(dt);
            dataGridView1.DataSource = dt;
я так понял тут он открывает файл. Но я работаю с БД через vs, как подправить эту часть? С этой строчкой он опять пишет что не удается найти файл
0
insite2012
Модератор
Эксперт .NET
4865 / 3818 / 1096
Регистрация: 12.10.2013
Сообщений: 11,095
Записей в блоге: 2
13.10.2014, 20:00 13
Цитата Сообщение от adlansuliman Посмотреть сообщение
Но я работаю с БД через vs, как подправить эту часть?
Изменить путь к файлу БД том примере он лежит в одной папке с исполняемым файлом. И что значит "работаю через VS"? Все так работают, но в ручном режиме удобнее (в случае не особо сложных проектов).
PS. Вы скажите, что хотите сделать, может вам пример покажут...
Цитата Сообщение от adlansuliman Посмотреть сообщение
это тоже моя тема, с разных компов, разные учетки.
А вот это уже не хорошо! Это вы что, клонов плодите?
0
Taatshi
Администратор
11725 / 5077 / 257
Регистрация: 05.04.2011
Сообщений: 13,847
Записей в блоге: 2
13.10.2014, 20:48 14
adlansuliman, создадите еще одного клона - последуют санкции. Нет ни малейшей нужды создавать нового пользователя для каждого устройства, с которого Вы входите на форум. Читайте правила.
0
Бейсик рулит
8 / 2 / 0
Регистрация: 17.03.2016
Сообщений: 103
21.04.2018, 15:06 15
Такая же проблема. Не сохраняет данные в файл access. И при повторном запуске программы удаляет ранее внесенные данные. Помогите разораться пожалуйста
0
21.04.2018, 15:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2018, 15:06

Событие изменения содержимого страницы без изменения адреса и перезагрузки страницы
Доброго времени суток! Такая проблема имеется: есть форма на определенном...

XPathNodeIterator, MoveNext: как отменить изменения?
Работаю с MoveNext, все хорошо. А как мне изменения отменить? Нужно снова...

Как в DataGridView отобразить изменения, происходящие в БД?
Здравствуйте. Исходное положение следующее: есть БД Access, в которой...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru