Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/40: Рейтинг темы: голосов - 40, средняя оценка - 4.98
2 / 2 / 1
Регистрация: 16.07.2009
Сообщений: 23

Загрузка данных из .txt в Базу данных

16.07.2009, 14:05. Показов 8167. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток. помогите сделать форму которая будет загружать данные (FileUpload), и записовать из в Б.Д.

Так же на странице будет выводить в GridWiev результаты заполнения.

Зараее благодарен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.07.2009, 14:05
Ответы с готовыми решениями:

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

Запись данных в базу данных SQL и выгрузка таблицы в форму
Нужно сделать 2 формы, одну с несколькими textBox'ами, чтобы при нажатии кнопки информация введённая в них, записывалась в Базу данных, и...

Запись данных в базу данных mdb с использованием DataAdapter и DataSet
Попробовал сделать Update для таблицы контактов: private void Form1_Load(object sender, EventArgs e) { OleDbConnection...

15
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
16.07.2009, 20:42
что именно не получается?
1
86 / 85 / 11
Регистрация: 12.07.2009
Сообщений: 465
18.07.2009, 16:30
gersen, Я так понял, что у вас даные в текстовых файлайх которые вы желаете загрузить (FileUpload) и форма должна будет брать эти даные из файла записывая их содержимое в БД паралейно выводить в GridView?
1
2 / 2 / 1
Регистрация: 16.07.2009
Сообщений: 23
19.07.2009, 09:54  [ТС]
Цитата Сообщение от Vegas Посмотреть сообщение
gersen, Я так понял, что у вас даные в текстовых файлайх которые вы желаете загрузить (FileUpload) и форма должна будет брать эти даные из файла записывая их содержимое в БД паралейно выводить в GridView?
ТОчно именно. Вы меня правильно поняли. Сможете помочь мне с этим.
0
86 / 85 / 11
Регистрация: 12.07.2009
Сообщений: 465
19.07.2009, 10:59
Чем сможем поможем
Теперь вопрос
Цитата Сообщение от IT-Skyline Посмотреть сообщение
что именно не получается?
1
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
19.07.2009, 15:56
Нужен пример содержимого файла, и нужно расписать как именно Вы хотите видеть его в гриде.
Что пытались сделать и где застряли ...
1
2 / 2 / 1
Регистрация: 16.07.2009
Сообщений: 23
20.07.2009, 08:42  [ТС]
Делал вот что!

<asp:TextBox ID="TextBox2" runat="server" Height="80px" TextMode="MultiLine"
Width="645px"></asp:TextBox>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True">
</asp:GridView>

- это форма загрузки!

---------------------
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
29
30
31
32
33
34
35
36
37
38
39
40
41
public partial class _Default : System.Web.UI.Page
    {
        public DataTable dt;
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
 
        protected void Button1_Click(object sender, EventArgs e)
        {
            string file_content ="";
           
            if (FileUpload1.HasFile == false)
            {
                Label1.Text = "Отсутствуют данные!";
                return;
            }
 
            if (FileUpload1.HasFile == true)
            {
                FileUpload1.FileContent.Flush();
                FileUpload1.FileContent.Position = 0;
 
                StreamReader sr = new StreamReader(FileUpload1.FileContent, System.Text.Encoding.GetEncoding(1251));
                file_content = sr.ReadToEnd();
            }
            if (TextBox2.Text.Length > 0)
            {
                file_content = TextBox2.Text;
            }
 
 
            Class1 vf = new Class1();
            dt = vf.parseData(file_content);
            GridView1.DataSource = dt;
            GridView1.DataBind();
           
        }
 
    
    }
--------------------

САМ CLASS1
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
  public class Class1
    {
        public OracleConnection myConnection = new OracleConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
 
        public Class1()
        { }
 
        public DataTable parseData(string inputString)
        {
            string[] clientFields = new string[1];
            int counter_r = 0;
            int counter_f = 0;
 
 
            try
            {
                DataTable resultDT = new DataTable();
                resultDT.Columns.Add("NAME");
                resultDT.Columns.Add("lAST_NAME");
                resultDT.Columns.Add("MIDNAME");
                
              
              
 
                string[] clientList = inputString.Split('\n');
 
                counter_r = 0;
                foreach (string client in clientList)
                {
                    if (client.Length > 0)
                    {
                        counter_f = 0;
                        clientFields = client.Split('@');
 
                        resultDT.Rows.Add();
                        resultDT.Rows[counter_r][0] = counter_r.ToString();
                        foreach (string field in clientFields)
                        {
                            resultDT.Rows[counter_r][counter_f + 1] = field;
 
                            counter_f++;
                            
                        }
                       
                        if (counter_f = 3)
                        {
                            throw new ArgumentNullException();
                        }
                       counter_r++;
                    }
 
                }
                return resultDT;
            }
            catch
            {
                DataTable errDT = new DataTable();
                errDT.Columns.Add("Номер строки");
                errDT.Columns.Add("Текст ошибки");
                errDT.Rows.Add();
                errDT.Rows[0][0] = counter_r.ToString();
                errDT.Rows[0][1] = "Ошибка занесеения в буфер";
                return errDT;
            }
        }
    }
------------
Сам файл

Евгений@Евгений@Евгений
Евгений@Евгений@Евгений
Евгений@Евгений@Евгений

.txt

Добавлено через 9 минут 15 секунд
Цитата Сообщение от IT-Skyline Посмотреть сообщение
что именно не получается?
говорит что не может найти 3-й столбец! (пример кода ниже)

Добавлено через 40 секунд
Цитата Сообщение от IT-Skyline Посмотреть сообщение
Нужен пример содержимого файла, и нужно расписать как именно Вы хотите видеть его в гриде.
Что пытались сделать и где застряли ...
Вот смотрите. говрит что не может найти 3-й столбец!
0
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
20.07.2009, 08:53
C#
1
2
3
foreach (string field in clientFields)
{
   resultDT.Rows[counter_r][counter_f + 1] = field;
Если ошибка здесь, то всё верно, при counter_f = 2, то выше строка пытается добавить запись в 4-ый столбец. Начинает считаться с 0, то третий = 2

C#
1
if (counter_f = 3)
Тут ошибки не видите?
1
2 / 2 / 1
Регистрация: 16.07.2009
Сообщений: 23
20.07.2009, 09:18  [ТС]
Цитата Сообщение от IT-Skyline Посмотреть сообщение
C#
1
2
3
foreach (string field in clientFields)
{
   resultDT.Rows[counter_r][counter_f + 1] = field;
Если ошибка здесь, то всё верно, при counter_f = 2, то выше строка пытается добавить запись в 4-ый столбец. Начинает считаться с 0, то третий = 2

C#
1
if (counter_f = 3)
Тут ошибки не видите?

Он после того как приходит 3-й столбец

C#
1
2
3
4
5
6
7
 foreach (string field in clientFields)
                        {
                            resultDT.Rows[counter_r][counter_f + 1] = field;
 
                            counter_f++;
                            
                        }
- здесь. Переходит сразу на

C#
1
2
3
4
5
6
7
8
9
10
 catch
            {
                DataTable errDT = new DataTable();
                errDT.Columns.Add("Номер строки");
                errDT.Columns.Add("Текст ошибки");
                errDT.Rows.Add();
                errDT.Rows[0][0] = counter_r.ToString();
                errDT.Rows[0][1] = "Ошибка занесеения в буфер";
                return errDT;
            }
не переходя на

C#
1
2
3
4
5
6
if (counter_f != 2)
                        {
                            throw new ArgumentNullException();
                        }
                       //СЮДА НЕ ПЕРЕХОДИТ после того как придет 3-й столбец.
counter_r++;
Добавлено через 5 минут 19 секунд
C#
1
if (counter_f = 3)
Тут ошибки не видите?[/QUOTE]

исправил на

C#
1
2
3
4
if (counter_f != 2)
                        {
                            throw new ArgumentNullException();
                        }

и результат тот же.!
0
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
20.07.2009, 09:36
Для начала:
C#
1
resultDT.Rows[counter_r][counter_f + 1] = field;
исправтье так:
C#
1
resultDT.Rows[counter_r][counter_f] = field;
Дальше исправьте так:
C#
1
if (counter_f == 3)
1
2 / 2 / 1
Регистрация: 16.07.2009
Сообщений: 23
20.07.2009, 09:41  [ТС]
Цитата Сообщение от IT-Skyline Посмотреть сообщение
Для начала:
C#
1
resultDT.Rows[counter_r][counter_f + 1] = field;
исправтье так:
C#
1
resultDT.Rows[counter_r][counter_f] = field;
Дальше исправьте так:
C#
1
if (counter_f == 3)

Значение не может быть неопределенным.!!!
выдает на

C#
1
2
3
4
5
6
7
8
9
10
 catch
            {
                DataTable errDT = new DataTable();
                errDT.Columns.Add("Номер строки");
                errDT.Columns.Add("Текст ошибки");
                errDT.Rows.Add();
                errDT.Rows[0][0] = counter_r.ToString();
                errDT.Rows[0][1] = "Ошибка занесеения в буфер";
                return errDT;
            }
0
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
20.07.2009, 10:02
Если выдаёт ошибку на первой же строке (при counter_r == 0)
то удалите
C#
1
resultDT.Rows[counter_r][0] = counter_r.ToString();
0
2 / 2 / 1
Регистрация: 16.07.2009
Сообщений: 23
20.07.2009, 10:09  [ТС]
Цитата Сообщение от IT-Skyline Посмотреть сообщение
Если выдаёт ошибку на первой же строке (при counter_r == 0)
то удалите
C#
1
resultDT.Rows[counter_r][0] = counter_r.ToString();


хммм. Невозможно найти столбец 3.
0
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
20.07.2009, 10:12
пошагово пройдитесь по коду и просмотрите где именно выдаёт ошибку, просмотрите чему равны переменные, сделайте выводы
1
2 / 2 / 1
Регистрация: 16.07.2009
Сообщений: 23
20.07.2009, 13:15  [ТС]
ВСЕ проблема решена. Вот код.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
   <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox2" runat="server" Height="80px" TextMode="MultiLine" 
                Width="645px"></asp:TextBox>
        <br /><br />
        
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
        
        <br /><br /><br />
        <asp:FileUpload ID="FileUpload1" runat="server" />
        
        <br /><br />
        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    
    
    <br /><br />
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True">
        </asp:GridView>
  
    
    </div>
    </form>
------------------------------------
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Text;
using System.IO;
 
namespace WebApplication22
{
    public partial class _Default : System.Web.UI.Page
    {
        public DataTable dt;
        protected void Page_Load(object sender, EventArgs e)
        {
           
        }
 
        protected void Button1_Click(object sender, EventArgs e)
        {
            string file_content ="";
           
            if (FileUpload1.HasFile == false)
            {
                Label1.Text = "Отсутствуют данные!";
                return;
            }
 
            if (FileUpload1.HasFile == true)
            {
                FileUpload1.FileContent.Flush();
                FileUpload1.FileContent.Position = 0;
 
                StreamReader sr = new StreamReader(FileUpload1.FileContent, System.Text.Encoding.GetEncoding(1251));
                file_content = sr.ReadToEnd();
            }
            if (TextBox2.Text.Length > 0)
            {
                file_content = TextBox2.Text;
            }
 
 
            Class1 vf = new Class1();
            dt = vf.parseData(file_content);
            GridView1.DataSource = dt;
            GridView1.DataBind();
 
            vf.insertDtToDb(dt);
              
        }
 
    
    }
}
---------------------------------
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OracleClient;
 
namespace WebApplication22
{
        
    public class Class1
    {
        //  protected static string connectionString = "Data Source=WEB_PORTAL.OLD; Persist Security Info=True; User ID=GERCEN_E; Password=1rJ,kfcnm2; Unicode=True;";
        protected static OracleConnection con = new OracleConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
 
 
        public DataTable dt;
        public Class1()
        { }
 
        public DataTable parseData(string inputString)
        {
            string[] clientFields = new string[4];
            int counter_r = 0;
            int counter_f = 0;
 
 
            try
            {
                DataTable resultDT = new DataTable();
                resultDT.Columns.Add("fio");
                resultDT.Columns.Add("dob");
                resultDT.Columns.Add("rnn");
                resultDT.Columns.Add("kod_s");
                
              
              
 
                string[] clientList = inputString.Split('\n');
 
                counter_r = 0;
                foreach (string client in clientList)
                {
                    if (client.Length > 0)
                    {
                        counter_f = 0;
                        clientFields = client.Split('@');
 
                        resultDT.Rows.Add();
                        resultDT.Rows[counter_r][0] = counter_r.ToString();
                        foreach (string field in clientFields)
                        {
                            resultDT.Rows[counter_r][counter_f] = field;
 
                            counter_f++;
                            
                        }
                       
                        if (counter_f == 4)
                        {
                           // throw new ArgumentNullException(); 
                            counter_r++;
                        }
                      
                    }
 
                }
                return resultDT;
            }
            catch
            {
                DataTable errDT = new DataTable();
                errDT.Columns.Add("Номер строки");
                errDT.Columns.Add("Текст ошибки");
                errDT.Rows.Add();
                errDT.Rows[0][0] = counter_r.ToString();
                errDT.Rows[0][1] = "Ошибка занесеения в буфер";
                return errDT;
            }
          
        }
 
 
        public void inserRecordToDB(string fio_n, int dob_n, string rnn_n, int kod_s_n)
        {
 
            OracleCommand command = new OracleCommand("g_tex.insertRecord", con);
            command.CommandType = CommandType.StoredProcedure;
 
 
            OracleParameter oNumber = new OracleParameter("fio_n", OracleType.VarChar);
            oNumber.Value = fio_n;
            command.Parameters.Add(oNumber);
 
            OracleParameter oDOB = new OracleParameter("dob_n", OracleType.Number);
            oDOB.Value = dob_n;
            command.Parameters.Add(oDOB);
 
            OracleParameter oSName = new OracleParameter("rnn_n", OracleType.VarChar);
            oSName.Value = rnn_n;
            command.Parameters.Add(oSName);
 
            OracleParameter oFName = new OracleParameter("kod_s_n", OracleType.Number);
            oFName.Value = kod_s_n;
            command.Parameters.Add(oFName);
 
 
 
  
           
            con.Open();
            OracleDataReader dr = command.ExecuteReader();
          con.Close();
 
            
           
        }
 
 
        public void insertDtToDb(DataTable dt)
        {
            for (int i = 0; i <= dt.Rows.Count - 1; i++)
            {
                inserRecordToDB(dt.Rows[i][0].ToString(), int.Parse(dt.Rows[i][1].ToString()), dt.Rows[i][2].ToString(), int.Parse(dt.Rows[i][3].ToString()));
            }
        }
 
        public string converToFormatedString(DataTable dt)
        {
            string outString = "";
 
            foreach (DataRow dr in dt.Rows)
            {
                outString += dr[0] + "@" + dr[1] + "@" + dr[2] + "\n";
            }
            return outString;
        }
 
 
 
    }
}
---------------------------



WebApplication22.rar
0
2 / 2 / 1
Регистрация: 16.07.2009
Сообщений: 23
20.07.2009, 13:16  [ТС]
Цитата Сообщение от IT-Skyline Посмотреть сообщение
пошагово пройдитесь по коду и просмотрите где именно выдаёт ошибку, просмотрите чему равны переменные, сделайте выводы
Спасибо большое. проблема решена. все дело было в том что он ходит по столбцам а вот по строкам нет. !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.07.2009, 13:16
Помогаю со студенческими работами здесь

Создания базы данных и таблиц в базу данных в SQL Server Managment Studio
Здраствуйте. Нужно создать такую маленькую программу при помощи которой можно создать базу данных и таблицы в ней в SQL Server Managment...

LINQ2DB : имея классы описывающие таблицы базы данных сгенерировать непосредственно базу данных
Добрый день. Подскажите, можно ли имея классы описывающие таблицы базы данных сгенерировать непосредственно базу данных?

Пишу базу данных на основе данных из базы access
Здравствуйте уважаемые форумчане)) у меня к вам несколько вопросов 1) как сделать так чтобы при каждом запуске программа считывала все...

Добавление данных видео, открытого из формы, в базу данных
Доброе время суток. Будьте добры подскажите, как сделать что бы в Visual Studio добавлялось видео, и его данные отображались в SQL. ...

Как ускорить запись данных в базу данных?
Добрый день. Есть следующий тестовый код: class MyClass { public int a; public int b; public int c; } void main()


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru