Перейти к содержимому


Фотография
- - - - -

Пытаюсь программировать


  • Пожалуйста, авторизуйтесь, чтобы ответить
43 ответов в этой теме

#21 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1 413 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 21 Декабрь 2009 - 19:15

а нельзя сразу задать количество строк?
а то они появляются только после заполнения предыдущих
  • 0

#22 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 сообщений
23
Обычный

Опубликовано 21 Декабрь 2009 - 20:53

dataGridView1.RowCount = 5; // Установка количества строк (5 штук)
Добавляешь этот код в Form1_load
  • 0

P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.

ты такой глупенький, что это уже даже не смешно


#23 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1 413 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 21 Декабрь 2009 - 22:05

я так понимаю что бы данные в таблице сохранялись и пересчитывались надо что то с базами данных мутить?
  • 0

#24 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 сообщений
23
Обычный

Опубликовано 22 Декабрь 2009 - 00:48

сохраняй содержимое datagridview в файл

Накидал на скорую руку код для кнопки сохранить
const string f = "dataDridView.csv";            int count_cells=dataGridView1.Rows[0].Cells.Count-1;            string data="";            for (int i = 0; i < dataGridView1.Rows.Count-1; i++)            {                for (int j = 0; j < count_cells; j++)                {                    data = data + dataGridView1.Rows[i].Cells[j].Value + ";";                }                data = data + dataGridView1.Rows[i].Cells[count_cells].Value + "\n";            }            File.WriteAllText(f,data);
ща придут поправят =)))
  • 0

P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.

ты такой глупенький, что это уже даже не смешно


#25 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1 413 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 22 Декабрь 2009 - 01:11

Ошибка 1 Элемент "File" не существует в текущем контексте. C:\Documents and Settings\mx\Рабочий стол\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 44 13 WindowsFormsApplication1


мне нужно создать файл что бы в него сохранялось?
  • 0

#26 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 сообщений
23
Обычный

Опубликовано 22 Декабрь 2009 - 01:13

добавь using System.IO; после всех usingов в начале программы
  • 0

P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.

ты такой глупенький, что это уже даже не смешно


#27 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1 413 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 22 Декабрь 2009 - 01:42

запустился но не сохраняет при следующем открытии



поправка
данные сохраняются в файл dataDridView.csv

я могу работая в таблице пересчитать данные и уже пересчитанные и введенные сохранить в файл и при следующим запуске считать обратно?
  • 0

#28 key

key

    -=SunKain=-

  • True Members
  • PipPipPipPipPip
  • 2 489 сообщений
12
Обычный
  • Пол:Мужчина
  • Город:Аден

Опубликовано 22 Декабрь 2009 - 01:53

запустился но не сохраняет при следующем открытии
поправка
данные сохраняются в файл dataDridView.csv

я могу работая в таблице пересчитать данные и уже пересчитанные и введенные сохранить в файл и при следующим запуске считать обратно?

ты сам-то вопрос понял ?:)

напиши конкретно по шагам, что ты хочешь сделать :)
  • 0
Mess with the best
Die like the rest

Размещенное изображение

Пуля производит удивительные изменеия в голове, даже если она попала в задницу.
(С) Лукьяненко "Черновик"

Conseal nohing.
And watch the fools searching forever.

#29 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1 413 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 22 Декабрь 2009 - 01:58

ты сам-то вопрос понял ?:)

напиши конкретно по шагам, что ты хочешь сделать :)


попробую)

открываю прогу,
в первой строчке ввожу время прихода на работу и время ухода
автоматом должно высчитываться сколько получилось часов в день
сохраняю, закрываю прогу
открываю на следующий день там все что было введено остается итд
  • 0

#30 key

key

    -=SunKain=-

  • True Members
  • PipPipPipPipPip
  • 2 489 сообщений
12
Обычный
  • Пол:Мужчина
  • Город:Аден

Опубликовано 22 Декабрь 2009 - 03:27

1. Смотреть в сторону SQLite. Это локальная БД, шустрая, легкая.
1а. На событие потери фокуса у текстбокса времени ухода с работы повесить обработчик (в свойствах textBox, раздел Events, выбрать нужное событие и кликнуть два раза), вычитать из введенных данных (предварительно сконвертировать из строки в DateTime) данные введенные в первом текстбоксе, в который вводится время прихода на работу.
1б. В обработчике клика кнопки записываем данные в БД. Закрываем прогу.
2. При открытии считываем из БД последнюю по дате запись.

Вроде все :)
Тебе лучше самому код написать, так лучше и быстрее научишься.
www.asp.net здесь много полезной инфы, есть и для начинающих материалы.
http://sqlite.phxsoftware.com/ тут об SQLite. Отюсда нужно скачать саму библиотечку и обертку для .NET к ней, а и еще ADO.NET DataProvider.
а самое главное, поставь MSDN себе, если ты этого еще не сделал. :) там есть 90% ответов на твои вопросы.

Обращайся, если что :)
  • 0
Mess with the best
Die like the rest

Размещенное изображение

Пуля производит удивительные изменеия в голове, даже если она попала в задницу.
(С) Лукьяненко "Черновик"

Conseal nohing.
And watch the fools searching forever.

#31 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 сообщений
23
Обычный

Опубликовано 22 Декабрь 2009 - 15:24

SQL конечно хорошо, но думаю ему достаточно будет моего варианта с чтением/записью в файл.
2 maxtor надо просто добавить чтение из файла при открытии формы. Вчера не успел. дома буду может напишу.
  • 0

P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.

ты такой глупенький, что это уже даже не смешно


#32 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1 413 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 22 Декабрь 2009 - 19:54

ооо спс
а то у меня от sql мозг кипит
мне бы что попроще )
  • 0

#33 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 сообщений
23
Обычный

Опубликовано 23 Декабрь 2009 - 00:59

Делаешь 2 функции
private void save_to_file()        {            //Задаем имя файла            const string f = "dataDridView.csv";            //количество столбцов            int count_cells = dataGridView1.Rows[0].Cells.Count - 1;            //переменная для хранения данных, помещаемых в файл            string data = "";            //Наполняем переменную data значениями из таблицы            for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)            {                for (int j = 0; j < count_cells; j++)                {                    //Прибовляем значения, разделяя их ;                    data = data + dataGridView1.Rows[i].Cells[j].Value + ";";                }                //После последнего значения строки добовляем перенос                data = data + dataGridView1.Rows[i].Cells[count_cells].Value + "\n";            }            //Сохраняем            File.WriteAllText(f, data);        }
и
private void load_from_file()        {            //Указываем имя открываемого файла            const string f = "dataDridView.csv";            //Разбиваем содержимое файла на строки                        string[] lines = File.ReadAllLines(f);            //Проверяем не пуст ли файл            if (lines.Count() == 0)                //Если пуст                MessageBox.Show("Файл пуст");            else            {                //Если нет, то устанавливаем количество строк в таблице                dataGridView1.RowCount = lines.Count();                //Счетчики строк и столбцов                int i = 0;                int j = 0;                //Строки разбиваем на отдельные значения                foreach (string line in lines)                {                    string[] data = line.Split(';');                    foreach (string element in data)                    {                        dataGridView1.Rows[i].Cells[j].Value = element;                        j++;                    }                    j = 0;                    i++;                }            }        }
теперь в нужных местах программы используешь load_from_file() и save_to_file()
Например можно в событии Form1_Closed написать save_to_file(), а в событии Form1_Load написать load_from_file(). Тогда таблица сама будет сохраняться в файле при закрытии формы и открываться при открытии формы
  • 0

P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.

ты такой глупенький, что это уже даже не смешно


#34 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1 413 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 23 Декабрь 2009 - 01:46

спс завтра повникаю
а пока не получилось сохранять по закрытию, если кнопку на событие сделать работает, а сама не хочет
  • 0

#35 key

key

    -=SunKain=-

  • True Members
  • PipPipPipPipPip
  • 2 489 сообщений
12
Обычный
  • Пол:Мужчина
  • Город:Аден

Опубликовано 23 Декабрь 2009 - 03:08

если ты имеешь ввиду закрытие формы, то событие должно быть что-то типа Form_Close
  • 0
Mess with the best
Die like the rest

Размещенное изображение

Пуля производит удивительные изменеия в голове, даже если она попала в задницу.
(С) Лукьяненко "Черновик"

Conseal nohing.
And watch the fools searching forever.

#36 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1 413 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 23 Декабрь 2009 - 10:42

я так делаю

private void Form1_Close(object sender, System.EventArgs e)
{
save_to_file();

}
  • 0

#37 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 сообщений
23
Обычный

Опубликовано 23 Декабрь 2009 - 12:05

[codebox] private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
save_to_file();
}[/codebox]
  • 0

P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.

ты такой глупенький, что это уже даже не смешно


#38 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1 413 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 23 Декабрь 2009 - 13:53

не сохраняются данные при закрытии :(
так работает

private void button2_Click_1(object sender, EventArgs e)
{
save_to_file();
}


а так нет

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
save_to_file();
}

в интернете несколько вариантов нашел, не получилось пока
  • 0

#39 key

key

    -=SunKain=-

  • True Members
  • PipPipPipPipPip
  • 2 489 сообщений
12
Обычный
  • Пол:Мужчина
  • Город:Аден

Опубликовано 23 Декабрь 2009 - 18:23

поставь точку останова на строчке вызова метода, залезь в метод и посмотри, что там происходит :)
продебажить, надо в общем.
  • 0
Mess with the best
Die like the rest

Размещенное изображение

Пуля производит удивительные изменеия в голове, даже если она попала в задницу.
(С) Лукьяненко "Черновик"

Conseal nohing.
And watch the fools searching forever.

#40 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1 413 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 24 Декабрь 2009 - 01:57

блин по всякому побывал
private void Form1_FormClosed(Object sender, FormClosedEventArgs e)

private void Form1_FormClosed(object sender, FormClosedEventHandler e)

private void Form1_FormClosed(object sender, FormClosingEventArgs e)
не работает :(

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
	public partial class Form1 : Form
	{
		public Form1()
		{

			InitializeComponent();

		}

		// загрузка данных
		private void Form1_Load(object sender, EventArgs e)
		{
			load_from_file();
			dataGridView1.RowCount = 31;

		}

		// авто сохранение при закрытии программы, не пашет :( 
		private void Form1_FormClosed(object sender, FormClosedEventArgs e)
		{
			save_to_file();
		}

		   // сохранение по кнопки
		   private void button1_Click(object sender, EventArgs e)
		   {
			   save_to_file();
		   }


		private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
		{
			
		}

		//заргузка файла
		private void load_from_file()
		{
			//Указываем имя открываемого файла
			const string f = "time";
			//Разбиваем содержимое файла на строки
			string[] lines = File.ReadAllLines(f);
			//Проверяем не пуст ли файл
			if (lines.Count() == 0)
			//Если пуст

				MessageBox.Show("Первый запуск программы");

			else
			{
				//Если нет, то устанавливаем количество строк в таблице
				dataGridView1.RowCount = lines.Count();
				//Счетчики строк и столбцов
				int i = 0;
				int j = 0;
				//Строки разбиваем на отдельные значения
				foreach (string line in lines)
				{
					string[] data = line.Split(';');
					foreach (string element in data)
					{
						dataGridView1.Rows[i].Cells[j].Value = element;
						j++;
					}
					j = 0;
					i++;
				}
			}
		}

		//сохранение файла
		private void save_to_file()
		{
			//Задаем имя файла
			const string f = "time";
			//количество столбцов
			int count_cells = dataGridView1.Rows[0].Cells.Count - 1;
			//переменная для хранения данных, помещаемых в файл
			string data = "";
			//Наполняем переменную data значениями из таблицы
			for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
			{
				for (int j = 0; j < count_cells; j++)
				{
					//Прибовляем значения, разделяя их;
					data = data + dataGridView1.Rows[i].Cells[j].Value + ";";
				}
				//После последнего значения строки добовляем перенос
				data = data + dataGridView1.Rows[i].Cells[count_cells].Value + "\n";
			}
			//Сохраняем
			File.WriteAllText(f, data);
		}

		private void button3_Click(object sender, EventArgs e)
		{

		}

		private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
		{

		}

		private void textBox1_TextChanged(object sender, EventArgs e)
		{

		}

		}
	   
	}

  • 0


Посетителей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных пользователей