Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
SheFillkO
8 / 8 / 5
Регистрация: 07.06.2014
Сообщений: 51
1

Обновление данных в БД вручную в режиме "он-лайн" OleDb | SQL Server

08.06.2014, 19:54. Просмотров 613. Ответов 1
Метки нет (Все метки)

Всем привет

Написал программку, с использованием SQL Server | OLEDb

Добавление \ удаление работает нормально, но проблема в том, что я хочу, что бы во время работы программы, были видны изменения добавления\удаления, хотел реализовать это хотя бы с помощью кнопочки "Update", посмотрел примеры, но что-то не получается, помогите создать метод обновления БД в реальном времени.

Скину на всякий случай свой "быдло-код"

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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.IO;
using System.Data.OleDb;
 
namespace ole_db_pr_test
{
    public partial class Form1 : Form
    {
        private OleDbConnection myConnection;
        private OleDbDataAdapter myAdapter;
        private DataSet myDs;
        public Form1()
        {
            InitializeComponent();
            this.Load += delegate { Form1_Load(); };
        }
 
        private void Form1_Load()
        {
                myConnection = new OleDbConnection();
                myAdapter = new OleDbDataAdapter();
                myDs = new DataSet();
                myConnection = new System.Data.OleDb.OleDbConnection();
                myConnection.ConnectionString = @"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test_db;Data Source=FILL-PC\SQLEXPRESS";
                myConnection.Open();
                OleDbCommand selectCmd = new OleDbCommand("Select * From Books", myConnection);
                myAdapter.SelectCommand = selectCmd;
                myAdapter.Fill(myDs);
                dataGridView1.DataSource = myDs.Tables[0];    
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
 
        public void InsertBook(int BookID, string Title, string PublishYear)
        {
            // Оператор SQL
            string sql = string.Format("Insert Into Books" +
                   "(BookID, Title, PublishYear) Values('{0}','{1}','{2}')", BookID, Title, PublishYear);
            using (OleDbCommand cmd = new OleDbCommand(sql, this.myConnection))
            {
                cmd.ExecuteNonQuery();
            }
        }
 
        public void DeleteBook(int BookID, string Title, string PublishYear)
        {
            string Ole = string.Format("Delete from Books where BookID = '{0}' and Title = '{1}' and PublishYear = '{2}'", BookID, Title, PublishYear);
            using (OleDbCommand cmd = new OleDbCommand(Ole, this.myConnection))
            { 
                    cmd.ExecuteNonQuery();   
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            int b_id = int.Parse(textBox1.Text);
            string b_title = textBox2.Text;
            string b_publish = textBox3.Text;
            InsertBook(b_id, b_title, b_publish);
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            int b_id = int.Parse(textBox4.Text);
            string b_title = textBox5.Text;
            string b_publish = textBox6.Text;
            DeleteBook(b_id, b_title, b_publish);
        }
 
        private void UpdateBook()
        {
 
        }
    }
}
Добавлено через 1 час 57 минут
Решил данную проблему через жопу кому интересно, написал вот такой метод, смысл его таков: просто очищаю таблицу, за тем загружаю данные из таблицы по-новой


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        public void Clear(DataGridView dataGridView)
        {
            while (dataGridView.Rows.Count > 1)
                for (int i = 0; i < dataGridView.Rows.Count - 1; i++)
                    dataGridView.Rows.Remove(dataGridView.Rows[i]);
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            Clear(dataGridView1);
            myConnection = new OleDbConnection();
            myConnection.ConnectionString = @"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test_db;Data Source=FILL-PC\SQLEXPRESS";
            myConnection.Open();
                OleDbCommand selectCmd = new OleDbCommand("SELECT * From Books", myConnection);
                myAdapter.SelectCommand = selectCmd;
                myAdapter.Fill(myDs);
                dataGridView1.DataSource = myDs.Tables[0];
        }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2014, 19:54
Ответы с готовыми решениями:

Добавление файла *.mdf. Ошибка "Должен быть установлен и запущен экспресс-выпуск SQL Server 2005 или SQL Server 2008"
Установлена Visual Studio 2010 и SQL Server 2008 R2 Standard. Хочу добавить в приложение файл базы...

Обновление данных и ошибка "Является "тип", но используется как "переменная"
Код кнопки обновить ,базу данных (button1) пишет ошибку Ошибка 1 &quot;Склад_Фамилия.СкладDataSet&quot;...

Ошибка System.Data.OleDb.OleDbException: "Несоответствие типов данных в выражении условия отбора."
Access 2016, VS 2017, C# Ошибка System.Data.OleDb.OleDbException: &quot;Несоответствие типов данных в...

Обновление источника данных и ошибка "Не удалось привести тип объекта "System.Data.DataView" к типу "System.Data.IDataReader"
Доброй ночи. При попытке обновления источника данных, выбрасывает следущую ошибку: &quot;Не удалось...

Обновление данных в sql server
Подскажите как можно реализовать автоматическое удаление данных из БД sql server по дате. Например:...

1
pincet
1387 / 970 / 131
Регистрация: 23.07.2010
Сообщений: 5,274
10.06.2014, 13:18 2
Действительно, через ()()
myAdapter.ClearBeforeFill=true
и желательно BindingSource использовать
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2014, 13:18

При попытке подключения к SQL Server 2005: "Журнал событий переполнен"
Здравствуйте! Такая проблема, пытаюсь подключиться к базе данных SQL Server 2005, но выскакивает...

Подключение к БД пользователей и ошибка "Пользователь не связан с доверенным соединением с SQL Server"
Доброе время суток! Прошу прощения, если такая тема уже была, но через поиск ничего не нашёл. ...

DateTime -> SQL Server Date. Ошибка "Значение нарушает ограничение MaxLength для этого столбца"
Пытаюсь записать C# тип данных DateTime в SQL Server тип данных Date OleDbDataAdapter adapter...


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

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

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