Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / .txt записать в таблицу SQL Server'a на C# / 5 сообщений из 5, страница 1 из 1
16.12.2009, 09:16
    #36368610
timergaliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.txt записать в таблицу SQL Server'a на C#
помогите пожалуйста, у меня вот такая вот задача:
надо из текстового файла где 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
16.12.2009, 10:48
    #36368805
Gluck_13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.txt записать в таблицу SQL Server'a на C#
RTFM Regex : Split, Matches, ...

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

Если хочешь более подробного ответа - четче сформулируй условия - дай внятное описание формата входного файла и структуры результирующих таблиц (непонятно, почему 2 таблицы а не одна с несколькими колонками?)
...
Рейтинг: 0 / 0
16.12.2009, 10:55
    #36368827
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.txt записать в таблицу SQL Server'a на C#
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
16.12.2009, 13:40
    #36369387
timergaliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.txt записать в таблицу SQL Server'a на C#
я вот использовал ваш 2 вариант, подправил под себя малость, но появилась другая проблема, ведь у меня в текстовом файле хранятся файлы вот как
<<<<<<
слово
{всякая белеберда(статья к слову)}
так вот, я не очень понимаю как сплитом работать, мне нужно взять отдельно слова и отдельно {...} , сначала я добавляю слово в таблицу ut_term и получаю автоматически при добавлении id словаря которое я выбираю из комбобокса к каком словарю это относится, который я потом добавляю вместе с {...} в таблицу ut_article, потом я вставляю id статьи и id слова в таблицу связи таблиц ut_term_article
вообщем вот такая вот задача стоит сейчас
...
Рейтинг: 0 / 0
16.12.2009, 14:06
    #36369453
timergaliev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.txt записать в таблицу SQL Server'a на C#
МСУ,

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


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