powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / .txt записать в таблицу SQL Server'a на C#
5 сообщений из 5, страница 1 из 1
.txt записать в таблицу SQL Server'a на C#
    #36368610
timergaliev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите пожалуйста, у меня вот такая вот задача:
надо из текстового файла где 3 вида данных
1 это просто <<<<<
2 слово
3 описание, которое обрамлено в { }
в общем данных много
надо на C# загнать слова в таблицу и описания в другую, прочитать у меня получается, но вот чтобы выбирать именно слова и описания и записывать в таблицу не получается, я даже не знаю как это сделать?

вот как я читаю .txt
TextReader trd = new StreamReader(slr);
string line;
while ((line = trd.ReadLine()) != null)
{
//while ((trd.Peek() != '<'))
//{
// textBox1.Text = line;

//}
textBox1.Text = line;
}

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
.txt записать в таблицу SQL Server'a на C#
    #36368805
Gluck_13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RTFM Regex : Split, Matches, ...

Можно и без Regex (работать должно быстрее), судя по описанию формат совсем не сложный.

Если хочешь более подробного ответа - четче сформулируй условия - дай внятное описание формата входного файла и структуры результирующих таблиц (непонятно, почему 2 таблицы а не одна с несколькими колонками?)
...
Рейтинг: 0 / 0
.txt записать в таблицу SQL Server'a на C#
    #36368827
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OdbcCommand + SqlBulkCopy


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
OdbcConnectionStringBuilder oCSB = new OdbcConnectionStringBuilder();
oCSB.Driver = "Microsoft Text Driver (*.txt; *.csv)";
oCSB.Add("DBQ", @"C:\");
oCSB.Add("Extensions", "asc,csv,tab,txt");

OdbcConnection oConn = new OdbcConnection(oCSB.ConnectionString);
oConn.Open();
            
using (OdbcCommand oCmd = new OdbcCommand(String.Format("SELECT * FROM {0}", "5.txt"), oConn))
using (OdbcDataReader oDR = oCmd.ExecuteReader())
using (SqlConnection connection = new SqlConnection(GetConnectionString()))
using (SqlBulkCopy bcp = new SqlBulkCopy(connection))
{
    connection.Open();
    bcp.DestinationTableName = "dbo.TBL_TEST5";
    //bcp.ColumnMappings.Add("FLD", "FLD");
    bcp.WriteToServer(oDR);
}

Либо, если не можете сделать Select из текстового файла - собирите сплитами, как Вам уже посоветовали, свой DataTable и оправьте его через SqlBulkCopy на сервер.

Код: 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.
private DataTable CreateDataTableFromFile()
{
    DataTable dt = new DataTable();
    DataColumn dc = new DataColumn();
    DataRow dr;

    dc.DataType = typeof(int); // Type.GetType("System.Int32");
    dc.ColumnName = "FLD";
    dc.Unique = false;

    dt.Columns.Add(dc);

    using (StreamReader sr = new StreamReader(@"C:\test.txt"))
    {
        string input;
        while ((input = sr.ReadLine()) != null)
        {
            string[] s = input.Split(new char[] { '|' });
            dr = dt.NewRow();
            dr["FLD"] = s[0];
            dt.Rows.Add(dr);
        }
    }

    return dt;
}

using (SqlConnection connection = new SqlConnection(GetConnectionString()))
{
    connection.Open();                
    using (SqlBulkCopy bcp = new SqlBulkCopy(connection))
    {
        bcp.DestinationTableName = "dbo.TBL_TEST5";
        bcp.ColumnMappings.Add("FLD", "FLD");
        bcp.WriteToServer(CreateDataTableFromFile());
    }               
}

...
Рейтинг: 0 / 0
.txt записать в таблицу SQL Server'a на C#
    #36369387
timergaliev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я вот использовал ваш 2 вариант, подправил под себя малость, но появилась другая проблема, ведь у меня в текстовом файле хранятся файлы вот как
<<<<<<
слово
{всякая белеберда(статья к слову)}
так вот, я не очень понимаю как сплитом работать, мне нужно взять отдельно слова и отдельно {...} , сначала я добавляю слово в таблицу ut_term и получаю автоматически при добавлении id словаря которое я выбираю из комбобокса к каком словарю это относится, который я потом добавляю вместе с {...} в таблицу ut_article, потом я вставляю id статьи и id слова в таблицу связи таблиц ut_term_article
вообщем вот такая вот задача стоит сейчас
...
Рейтинг: 0 / 0
.txt записать в таблицу SQL Server'a на C#
    #36369453
timergaliev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ,

я вот использовал ваш 2 вариант, подправил под себя малость, но появилась другая проблема, ведь у меня в текстовом файле хранятся файлы вот как
<<<<<<
слово
{всякая белеберда(статья к слову)}
так вот, я не очень понимаю как сплитом работать, мне нужно взять отдельно слова и отдельно {...} , сначала я добавляю слово в таблицу ut_term и получаю автоматически при добавлении id словаря которое я выбираю из комбобокса к каком словарю это относится, который я потом добавляю вместе с {...} в таблицу ut_article, потом я вставляю id статьи и id слова в таблицу связи таблиц ut_term_article
вообщем вот такая вот задача стоит сейчас
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / .txt записать в таблицу SQL Server'a на C#
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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