Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Fene4ka_
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,244
1

Сохранение данных в базу данных

09.03.2015, 16:56. Просмотров 494. Ответов 1
Метки нет (Все метки)

Добрый день, я заполняю sqladapter:
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
private SqlDataAdapter _mainAdapter;
 _mainAdapter = setConnectionDB.Connections.getSqlAdapter(@"C:\Database1.mdf");
 public static SqlDataAdapter getSqlAdapter(string path)
    {
      SqlConnection sqlConnection = new SqlConnection("Data Source=(LocalDB)\\v11.0;\r\n                          AttachDbFilename=" + path + ";Integrated Security=True;\r\n                          Connect Timeout=30");
      try
      {
        sqlConnection.Open();
        StringBuilder stringBuilder = new StringBuilder("SELECT * FROM sysobjects WHERE xtype='U'");
        SqlDataReader sqlDataReader = new SqlCommand(stringBuilder.ToString(), sqlConnection).ExecuteReader();
        stringBuilder.Clear();
        while (sqlDataReader.Read())
          stringBuilder.Append("Select * From [" + sqlDataReader.GetString(0) + "];");
        sqlDataReader.Close();
        SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(stringBuilder.ToString(), sqlConnection);
        sqlConnection.Close();
        return sqlDataAdapter;
      }
      catch (Exception ex)
      {
        Console.WriteLine(ex.Message);
        Console.Read();
        return (SqlDataAdapter) null;
      }
    }
далее заполняю dataset:
C#
1
2
private readonly DataSet _mainDataSet = new DataSet();
_mainAdapter.Fill(_mainDataSet);
далее связываю dataset с datagridview, в таблице провожу различные манипуляции и пытаюсб сохранить результат в базу:
C#
1
_mainAdapter.Update(_mainDataSet);
но в результате ничего не сохраняется, подскажите в чем проблема

Добавлено через 48 секунд
может быть это из-за
C#
1
sqlConnection.Close();
?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2015, 16:56
Ответы с готовыми решениями:

Сохранение данных из datagridview в базу данных под MS sql server 2012
Доброго времени суток. Делаю курсовую, и до этого момента думал, что самое...

Сохранение данных, добавленных в базу данных access
Помогите сделать сохранение добавленных данных в бд, при перезапуске программы...

Сохранение данных в базу данных SQL Server
Есть база данных LocalDB с одной таблицей Notice. Так же есть две формы: одна с...

Сохранение данных из DataGridView в базу данных
AVE. У меня не получается сохранить введенные данные в бд. Оно их заносит в...

Сохранение данных с DataSet в базу данных
Здраствуйте. У меня есть датагрид который подвязан к таблице в базе. Мне нужно...

1
Fene4ka_
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,244
11.03.2015, 16:15  [ТС] 2
переделал немного внесение изменений в базу, добавив insert-команду в dataAdapter, но данные все-равно не сохраняются ...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
          private void InsertCommand() {
            string cmd = "";
            SqlConnection sqlConnection = new SqlConnection("Data Source=(LocalDB)\\v11.0;" +
                                                            @"AttachDbFilename=C:\Users\Lepkovich_EO\Documents\Visual Studio 2013\Projects\model1\model1\bin\Debug\Database1.mdf" +
                                                            ";Integrated Security=True;" +
                                                            "Connect Timeout=30");
            sqlConnection.Open();
            for (int i = 0; i < _tabControl.TabPages.Count; i++) {
                cmd = "insert into " + _tabControl.TabPages[i].Text + "values (";
                for (int j = 0; j < ((DataGridView) _tabControl.TabPages[i].Controls[0]).Columns.Count; j++)
                    cmd += ((DataGridView) _tabControl.TabPages[i].Controls[0]).Columns[j].Name + ", ";
                cmd = cmd.Substring(cmd.Length - 2, cmd.Length) + ")";
                _mainAdapter.InsertCommand = new SqlCommand(cmd, sqlConnection);
                _mainAdapter.Update(_mainDataSet.Tables[i]);
            }
            sqlConnection.Close();
        }
Добавлено через 27 минут
ага, нашел проблему, неправильно обрезал строку (интересно, почему студия ни слова мне не сказала об этом), но теперь другая проблема, при внесении изменений в базу мне выдает ошибку о конвертации(прошелся дебагом, в datagridview значения int, string, string; в базе int, nchar, nchar) ...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void InsertCommand() {
            string cmd = "";
            SqlConnection sqlConnection = new SqlConnection("Data Source=(LocalDB)\\v11.0;" +
                                                            @"AttachDbFilename=C:\Users\Lepkovich_EO\Documents\Visual Studio 2013\Projects\model1\model1\bin\Debug\Database1.mdf" +
                                                            ";Integrated Security=True;" +
                                                            "Connect Timeout=30");
            sqlConnection.Open();
            for (int i = 0; i < _tabControl.TabPages.Count; i++) {
                cmd = "insert into [" + _tabControl.TabPages[i].Text + "] values (";
                for (int j = 0; j < ((DataGridView) _tabControl.TabPages[i].Controls[0]).Columns.Count; j++) {
                    ((DataGridView) _tabControl.TabPages[i].Controls[0])[j, i].Value =
                        ((DataGridView) _tabControl.TabPages[i].Controls[0])[j, i].ToString().Replace(" ", "");
                    cmd += "'" + ((DataGridView) _tabControl.TabPages[i].Controls[0]).Columns[j].Name + "', ";
                }
                cmd = cmd.Substring(0, cmd.Length - 2) + ")";
                _mainAdapter.InsertCommand = new SqlCommand(cmd, sqlConnection);
                _mainAdapter.Update(_mainDataSet.Tables[i]);
            }
            sqlConnection.Close();
        }
Добавлено через 1 час 26 минут
пофиксил все эти штуки
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
private void InsertCommand() {
            string cmd = "";
            SqlConnection sqlConnection = new SqlConnection("Data Source=(LocalDB)\\v11.0;" +
                                                            @"AttachDbFilename=C:\Users\Lepkovich_EO\Documents\Visual Studio 2013\Projects\model1\model1\bin\Debug\Database1.mdf" +
                                                            ";Integrated Security=True;" +
                                                            "Connect Timeout=30");
            sqlConnection.Open();
            for (int i = 0; i < _tabControl.TabPages.Count; i++) {
                cmd = "insert into [" + _tabControl.TabPages[i].Text + "] values (";
                for (int j = 0; j < ((DataGridView) _tabControl.TabPages[i].Controls[0]).Columns.Count; j++) {
                    cmd += "@" + ((DataGridView) _tabControl.TabPages[i].Controls[0]).Columns[j].Name + ", ";
                }
                cmd = cmd.Substring(0, cmd.Length - 2) + ")";
                _mainAdapter.InsertCommand = new SqlCommand(cmd, sqlConnection);
                SqlParameterCollection pc = _mainAdapter.InsertCommand.Parameters;
                for (int j = 0; j < ((DataGridView) _tabControl.TabPages[i].Controls[0]).Columns.Count; j++) {
                    string valueType = ((DataGridView)_tabControl.TabPages[i].Controls[0])[j, i].ValueType.ToString();
                    SqlDbType type = valueType.Equals("System.Int32")
                        ? type = SqlDbType.Int
                        : type = SqlDbType.NChar;
                    pc.Add("@" + ((DataGridView) _tabControl.TabPages[i].Controls[0]).Columns[j].Name,
                        type, 0, ((DataGridView) _tabControl.TabPages[i].Controls[0]).Columns[j].Name);
                }
                _mainAdapter.Update(_mainDataSet.Tables[i]);
            }
            sqlConnection.Close();
        }
    }
данные заносятся в таблицу и в базу (по идее), но после перезапуска программы, этих данных нету (не сохранились), но при повторной попытке занести эти данные, программа пишет, мол такой ключ в базе уже существует!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2015, 16:15

Сохранение в базу данных
Здравствуйте. Подскажите пожалуйста как сделать следующее: Исходные...

Сохранение данных в базу .mdf
Доброго времени суток всем) Проблема стара как мир, но все возможные варианты...

Сохранение изменений в базу данных
Здравствуйте, уважаемые программисты! Я начал первые шаги в освоении баз...


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

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

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