Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/65: Рейтинг темы: голосов - 65, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 102
1

Добавление записи из Datagridview в базу данных mysql

20.04.2014, 18:05. Показов 12548. Ответов 51
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Друзья, хочу добавить данные с датагрида в базу данных но выдает ошибку ссылка на объект не указывает на экземпляр объекта, что я делаю не правильно?Обращаюсь к записи через класс бд коннектиться тока вот со вставкой косяк((((((((
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void toolStripButton2_Click(object sender, EventArgs e)
            { // добавление записей в таблицу
               string lastvo = sqlClass.getIndex("SELECT MAX(Id_company) AS last fROM company");
     
                for (int l = 0; l < dataGridView1.RowCount; l++)
                {
                  string insert = "insert into company (Id_company, address, nachalo_sotrudnichestva, vozmojnost_adaptacii,  korporativ_obuchenie, otzyvy, chernyi_list, BIN_RNN, primechanie, nalichie_dogovorov, opyt_sotrudnichesva, kolich_obuch) " +
                          "values ('" + lastvo + "', '" + dataGridView1.Rows[l].Cells[1].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[2].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[3].Value.ToString() + "', '" +
                                    dataGridView1.Rows[l].Cells[4].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[5].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[6].Value.ToString() + "', '" +
                                   dataGridView1.Rows[l].Cells[7].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[8].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[9].Value.ToString() +
                                   "', '" + dataGridView1.Rows[l].Cells[10].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[11].Value.ToString() + "')";
                        sqlClass.InsertUpdate(insert);
     
                    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2014, 18:05
Ответы с готовыми решениями:

Добавление записи в базу данных mysql
Всем привет. Мне нужно объединить 3 таблицы, я их объединила. Вот моя проблема у меня не получается...

Добавление в базу данных mysql. Ошибка
Собственно пытаюсь добавить в базу данных инфу из текстбоксов. Но выдаёт ошибку, не пойму что не...

Запрос на добавление данных в базу данных из формы. Mysql
Надо, чтобы данные вводились из формы. Я пишу так, но не знаю как дописать. &lt;html&gt;&lt;head&gt; ...

Добавление записи в базу данных
Здравствуйте, это снова я. Может кто подскажет, почему не получается создать новую запись в...

51
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 102
20.04.2014, 22:41  [ТС] 21
Author24 — интернет-сервис помощи студентам
Да про них родимых я их сам приписал указал их названия, а когда запрос выполняется у меня в датагриде отображаются мои заголовки да ещё и Заголовки с их названия в базе
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,671
20.04.2014, 22:48 22
Установи через свойства колонок любые заголовки, какие хочешь.
0
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 102
20.04.2014, 22:53  [ТС] 23
Я уже установил только говорю же записи из бд не вставляются в датагрид. Я сделал свойство autogeneratecolumns =false. Теперь отображаются тока мои заголовки. А как сделать чтоб отображались мои данные
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,671
20.04.2014, 23:07 24
Вот это сделал?
C#
1
2
myDataAdapter.Fill(myDataSet, "Departments"); 
dataGridView1.DataSource = myDataSet["Departments"];
0
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 102
20.04.2014, 23:11  [ТС] 25
Да сделал, спокойно в класс добавил вызываю функцию с параметрами запроса и названием таблицы
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,671
20.04.2014, 23:17 26
И в DataGrid ничего не появляется?
0
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 102
20.04.2014, 23:22  [ТС] 27
Появляется если я уберу значения своих заголовков, те которые я в свойствах datagrid прописал
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,671
20.04.2014, 23:27 28
Сначала всё загружаешь, устанавливаешь DataSource. И только потом меняешь заголовки, оформление и т. п.
0
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 102
20.04.2014, 23:46  [ТС] 29
я не учел тут он ругается типа Error 1 Cannot apply indexing with [] to an expression of type 'System.Data.DataSet'
Код
dataGridView1.DataSource = myDataSet["company"];
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,671
21.04.2014, 05:55 30
Пропустил Tables
C#
1
dataGridView1.DataSource = myDataSet.Tables["company"];
0
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 102
21.04.2014, 07:33  [ТС] 31
чет я ваще запутался посмотри пожалста, так я объявляю метод в классе но что писать в классе вместо[Table] птому что он ругается на него
C#
1
dataGridView.DataSource = myDataSet.Tables[table];
так как я хочу применять этот метод для нескольких форм и таблиц может быть выходные данные как то изменить?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public void update(string SQLcommand, DataGrid dataGridView, string Table)
        {
         //   DataTable dt = null;
            using (connection)
            {
                connection.Open();
            MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
            myDataAdapter.SelectCommand = new MySqlCommand(SQLcommand, connection);
            MySqlCommandBuilder myCommandBuilder = new MySqlCommandBuilder(myDataAdapter);
            DataSet myDataSet = new DataSet();
             dataGridView.DataSource = myDataSet.Tables[table];
            myDataAdapter.Fill(myDataSet, Table );
             myDataAdapter.Update(myDataSet, Table);
             
          //  dataGridView.DataMember = Table;
            }
                connection.Close();
            }
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,671
21.04.2014, 08:22 32
Порядок другой и MySqlDataAdapter, myDataSet объяви в заголовке класса
C#
1
2
3
4
5
            myDataAdapter = new MySqlDataAdapter(SQLcommand, connection);
            MySqlCommandBuilder myCommandBuilder = new MySqlCommandBuilder(myDataAdapter);
            myDataSet = new DataSet();
            myDataAdapter.Fill(myDataSet, "company");
            dataGridView.DataSource = myDataSet.Tables["company"];
0
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 102
21.04.2014, 08:40  [ТС] 33
Объявил как и сказали, теперь что делать с Tables["company"]; в классе как его обозначить вернее посмотри пожалста выше я в объявлении метода я НЕ правильно написал что туда писать?

Добавлено через 5 минут
Объявил как и сказали, теперь что делать с Tables["company"]; в классе как его обозначить вернее посмотри пожалста
Цитата Сообщение от Ali002 Посмотреть сообщение
public void update(string SQLcommand, DataGrid dataGridView, string Table)
я в объявлении метода я НЕ правильно написал или правильно ? Потом при вызове этого метода я пишу в запрос
C#
1
2
3
string cmnd = "SELECT * FROM company";
           dataGridView1.DataSource = "company";
sqlClass.update(cmnd , dataGridView1,"company");
что туда писать?
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,671
21.04.2014, 10:47 34
Настройку соединения и все эти манипуляции по заполнению DataGrid помести в конструктор класса.
А в public void update() будет только вызов DataAdapter.Update()
0
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 102
21.04.2014, 23:42  [ТС] 35
Я не понял чуток что куда нужно вставлять((((((((((((((
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
87
88
89
90
91
92
93
94
95
96
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
 
namespace MySqlConn
{
    class MySqlClass
    {
        public MySqlConnection connection;
        public MySqlDataAdapter myDataAdapter;
        public DataSet myDataSet;
        private string server;
        private string dataBase;
        private string uID;
        private string password;
     
        public MySqlClass()
        {
            Initialize();
     
           }
  
        public void Initialize()
        {
            server = "localhost";
            dataBase = "analyse";
            uID = "root";
            password = "password";
            string connectionString;
            connectionString = "SERVER=" + server + "; " + "DATABASE=" + dataBase + "; " +
                               "UID=" + uID + "; " + "PASSWORD=" + password;
            connection = new MySqlConnection(connectionString);
        }
 
        public bool OpenConnection()
        {
            try
            {
                connection.Open();
                return true;
            }
            catch (MySqlException ex)
            {
                switch (ex.Number)
                {
                    case 0:
                        MessageBox.Show("Невозможно подключиться к серверу. Свяжитесь с администратором");
                        break;
                        //а эта фигня не работает.хотя должна зараза работать!!!!!
                    case 1045:
                        MessageBox.Show("");
                        break;
                }
                return false;
            }
        }
 
        public bool CloseConnection()
        {
            try
            {
                connection.Close();
                return true;
            }
            catch (MySqlException ex)
            {
                //не знаю че придумать. пока что так будет
                MessageBox.Show(ex.Message);
                return false;
            }
        }
 
          public void update(string SQLcommand, DataGrid dataGridView)
        {
            using (connection)
            {
                connection.Open();
                myDataAdapter = new MySqlDataAdapter();
                myDataAdapter.SelectCommand = new MySqlCommand(SQLcommand, connection);
                MySqlCommandBuilder myCommandBuilder = new MySqlCommandBuilder(myDataAdapter);
                myDataSet = new DataSet();
                myDataAdapter.Fill(myDataSet);
                myDataAdapter.Update(myDataSet);
               dataGridView.DataSource = myDataSet;
                        }
            connection.Close();
        }
                 
   
        
    }
}
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,671
22.04.2014, 08:21 36
Строки с 82-86, 88 переместить в Initialize() или в OpenConnection(). в update() только 87 оставить.
0
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 102
22.04.2014, 08:55  [ТС] 37
а где объявить ? SQLcommand и Datagridview?
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,671
22.04.2014, 09:26 38
DataGridView зачем объявлять, его на форму размещаешь, объявление само появится. Надо только DataSource установить.
0
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 102
22.04.2014, 09:32  [ТС] 39
ааа ясно, а вот с fill и delete, тоже так же его тока в метод написать и при обращении так же как и с update
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,671
22.04.2014, 09:43 40
Если таблицу редактируешь средствами DataGridView, то там уже всё реализовано - добавление, удаление и редактирование, а для записи этого единый Update() адаптера предназначен.
0
22.04.2014, 09:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2014, 09:43
Помогаю со студенческими работами здесь

Добавление записи в базу данных
Private Sub Command1_Click() Data1.Recordset.AddNew End Sub Private Sub Command2_Click()...

Добавление записи в Базу данных
Добрый вечер, Есть работающее приложение для чтения и отправки сообщений. Необходимо записать...

Добавление записи в базу данных
такой вопрос, как додавить новую запись в базу данных с второй формы?? даные вводятся в textbox!...

Добавление данных в базу - PHP Myadmin Mysql
Здравствуйте у меня такая проблема. Я сделал форму регистрации и авторизации. Подскажите...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru