Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как верно внести в базу данные из DataSet / 7 сообщений из 7, страница 1 из 1
05.03.2010, 10:56
    #36504450
Egorich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как верно внести в базу данные из DataSet
Добрый день.

Хочу получить вот в каком вопросе:
Есть у меня локальная база, в которой я собираю данные(их не много 100 200 строк), затем мне надо отослать их на SQLserver 2005.
Как мне это верно сделать?
Я создал подключение к SQL2005, получил с него пару записей в dt , затем добавил в этот DataSet(SQL2005) dt данные из локального DataSet dtInvent и хочу сделать обновление в SQL2005 DataAdapter.

В данный момент я затрудняюсь в составлении InsertCommand .

Код: plaintext
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.
string connStr = "Server=192.168.1.3;Database=IRBISDB;Uid=Egor;Pwd=sdfgh";
                using (SqlConnection connection = new SqlConnection(connStr))
                {
                    connection.Open();

                    using (SqlCommand command = connection.CreateCommand())
                    {
                        string queryString = "SELECT * FROM InventoryBooks WHERE NumberDoc = 1;";
                        
                        SqlDataAdapter lDataAdapter = new SqlDataAdapter(queryString, connection);
                        string sqlInsert = "INSERT INTO InventoryBooks"
                            + "(DataDoc, NumberDoc, InventoryCode)VALUES "
                            + " ('{1}','{2}','{3}')", 
                            //Тут не знаю что добавлять, данных-то много

                        DataSet lDS = new DataSet();
                        lDataAdapter.Fill(lDS, "#InventoryBooks");

                        DataTable dt = lDS.Tables[0].Copy();
                        DataTable dtInvent = dbComponent.DBQuery("SELECT DataSent,DataRcvd FROM DataQueue").Tables[0];

                        foreach (DataRow dr in dtInvent.Rows)
                        {
                            DataRow newRow = dt.NewRow();
                            newRow[0] = dateTimePicker1.Value;
                            newRow[1] = "1";
                            newRow[2] = dr[0].ToString();
                            dt.Rows.Add(newRow);
                        }

                        //dt.AcceptChanges();
                        lDataAdapter.Update(lDS.Tables["#InventoryBooks"]);
                        //lDS.AcceptChanges();
                    }
                    connection.Close();
                }

Может это можно сделать проще? В цикле отправлять insert команды? Благодарю.
...
Рейтинг: 0 / 0
05.03.2010, 11:14
    #36504495
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как верно внести в базу данные из DataSet
...
Рейтинг: 0 / 0
05.03.2010, 11:28
    #36504546
Egorich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как верно внести в базу данные из DataSet
Класс интересный :)
Разрабатываю под Compact Framework 3.5, он к сожалению не поддерживается.

Если написать верный InsertCommand , то моё направление верно?
Благодарю.
...
Рейтинг: 0 / 0
05.03.2010, 12:45
    #36504774
Egorich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как верно внести в базу данные из DataSet
Ребята, почему код:

Код: plaintext
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.
                using (SqlConnection cn = new SqlConnection(connStr))
                {
                    cn.Open();

                    using (SqlCommand command = cn.CreateCommand())
                    {
                        string queryString = "SELECT * FROM BookInventory;"; // WHERE NumberDoc = 1;";
                        
                        SqlDataAdapter da = new SqlDataAdapter(queryString, cn);

                        string sqlInsert = "INSERT INTO BooksInventory"
                            + "(DataDoc, NumberDoc, CodeInventory)VALUES "
                            + " (@DataDoc,@NumberDoc,@CodeInventory)"; 
                        da.InsertCommand = new SqlCommand(sqlInsert, cn);
                        
                        SqlParameterCollection pc = da.InsertCommand.Parameters;
                        pc.Add("@DataDoc", SqlDbType.DateTime, 0, "DataDoc");
                        pc.Add("@NumberDoc", SqlDbType.VarChar, 0, "NumberDoc");
                        pc.Add("@CodeInventory", SqlDbType.VarChar, 0, "CodeInventory");

                        DataSet lDS = new DataSet();
                        da.Fill(lDS, "#BookInventory");

                        DataTable dt = lDS.Tables[0].Copy();
                        DataTable dtInvent = dbComponent.DBQuery("SELECT CodeInventory FROM BookInventory").Tables[0];

                        foreach (DataRow dr in dtInvent.Rows)
                        {
                            DataRow newRow = dt.NewRow();
                            newRow[0] = dateTimePicker1.Value;
                            newRow[1] = ReportNumericUpDown.Value.ToString();
                            newRow[2] = dr[0].ToString();
                            dt.Rows.Add(newRow);
                        }

                        da.Update(lDS.Tables["#BookInventory"]);
                    }
                    cn.Close();
                }
не вносит изменений?
Благодарю.
...
Рейтинг: 0 / 0
05.03.2010, 14:18
    #36505066
Egorich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как верно внести в базу данные из DataSet
Прошу прощения.
В имени таблицы ошибся :)
...
Рейтинг: 0 / 0
05.03.2010, 14:37
    #36505113
Egorich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как верно внести в базу данные из DataSet
Заменил:

Код: plaintext
DataTable dt = ds.Tables[0].Copy();

на

Код: plaintext
DataTable dt = ds.Tables["#BookInventory"];


Заработало.
...
Рейтинг: 0 / 0
05.03.2010, 15:49
    #36505270
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как верно внести в базу данные из DataSet
EgorichКласс интересный :)
Разрабатываю под Compact Framework 3.5, он к сожалению не поддерживается.
sql.ru/forum/actualthread.aspx?tid=739923#8428465
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как верно внести в базу данные из DataSet / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]