powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Данные из MSSQL в MSACCESS C#
6 сообщений из 6, страница 1 из 1
Данные из MSSQL в MSACCESS C#
    #38031183
Enigma+1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Как правильно копировать данный из таблицы mssql в в таблицу msaccess?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
               OleDbConnection connection = new OleDbConnection();
                connection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + appPath + "\\baza\\bdaccess.mdb;Persist Security Info=false";
                connection.Open();

                SqlConnection conect = new SqlConnection("Data Source=LocalHost;Persist Security Info=True;User ID=db_1;password=passworsmy;Initial Catalog=MyDataBase");
                conect.Open();
                SqlCommand cmd = new SqlCommand("Select ProductName From Products",conect);
                SqlDataReader reader = cmd.ExecuteReader();
                
                OleDbCommand command = connection.CreateCommand();
                while (reader.Read())
                {
                    command.CommandText = "Insert Into product (name) values (@name)";
                    command.Parameters.Add("@name", OleDbType.VarChar).Value = reader.GetString(0);
                }
              
                int rowsAffected = command.ExecuteNonQuery();
                MessageBox.Show("Данные добавлены " + rowsAffected + " запись");
                conect.Close();
                connection.Close();


это код работает но записывает только одну запись ))) как поставить цикл здесь чтоб добавить все данные?
...
Рейтинг: 0 / 0
Данные из MSSQL в MSACCESS C#
    #38031244
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enigma+1, код-то сами писали? Вот жеж цикл:
Код: c#
1.
2.
3.
4.
5.
while (reader.Read())
{
    command.CommandText = "Insert Into product (name) values (@name)";
    command.Parameters.Add("@name", OleDbType.VarChar).Value = reader.GetString(0);
}

Только выполнение команды command вне его, почему? :)
...
Рейтинг: 0 / 0
Данные из MSSQL в MSACCESS C#
    #38031251
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Потому и записывает только одну запись.

ПС. А что в аксесе нету штатной встроенной конвертилки?
...
Рейтинг: 0 / 0
Данные из MSSQL в MSACCESS C#
    #38031339
Enigma+1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAEnigma+1, код-то сами писали? Вот жеж цикл:
Код: c#
1.
2.
3.
4.
5.
6.
while (reader.Read())
{
    command.CommandText = "Insert Into product (name) values (@name)";
    command.Parameters.Add("@name", OleDbType.VarChar).Value = reader.GetString(0);
}
не получиться потому что тут только первого значение будет добавлена в базу акссеса 

Только выполнение команды command вне его, почему? :)
Потому что он проста будет повторят значение первого запроса записывать до конца цикла

А что в аксесе нету штатной встроенной конвертилки
пока не нашел.. но нашел вот это но он из аксеса в mssql
Код: 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.
 using (DataTable dt = new DataTable())
            {
                using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + appPath + "\\baza\\bdaccess.mdb;Persist Security Info=false"))
                using (OleDbCommand cmd = new OleDbCommand("Select * From product", conn))
                using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
                {
                    //cmd.CommandType = commandType;
                    cmd.Connection.Open();
                    adapter.SelectCommand.CommandTimeout = 240;
                    adapter.Fill(dt);
                    adapter.Dispose();
                }

                using (SqlConnection conn2 = new SqlConnection("Data Source=LocalHost;Persist Security Info=True;User ID=db_1;password=passworsmy;Initial Catalog=MyDataBase"))
                {
                    conn2.Open();
                    using (SqlBulkCopy copy = new SqlBulkCopy(conn2))
                    {
                        copy.DestinationTableName = "tabels";
                        copy.BatchSize = 1000;
                        copy.BulkCopyTimeout = 240;
                        copy.WriteToServer(dt);
                        copy.NotifyAfter = 1000;
                    }
                }
            }
...
Рейтинг: 0 / 0
Данные из MSSQL в MSACCESS C#
    #38031347
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enigma+1Потому что он проста будет повторят значение первого запроса записывать до конца циклаТо есть Вы забили выяснять, почему так происходит и решили найти решение, гаданием на гугле? :)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
OleDbCommand command = connection.CreateCommand();
int rowsAffected = 0;

command.CommandText = "Insert Into product (name) values (@name)";
command.Parameters.Add("name", OleDbType.VarChar);

while (reader.Read())
{
    command.Parameters["name"].Value = reader["ProductName"];
    rowsAffected += command.ExecuteNonQuery();
}

MessageBox.Show("Данные добавлены " + rowsAffected + " запись");
...
Рейтинг: 0 / 0
Данные из MSSQL в MSACCESS C#
    #38031654
Enigma+1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA Спасибо Работает... дааа удивляюсь себе
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Данные из MSSQL в MSACCESS C#
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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