Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблемы при добавлении записи в DataGridView и проблема при добавлении с даты. / 4 сообщений из 4, страница 1 из 1
19.07.2013, 10:44
    #38336528
guest786
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы при добавлении записи в DataGridView и проблема при добавлении с даты.
Здравствуйте. В данный момент пишу программу на c# и возникло несколько вопросов.
1) При запуске программы в DataGridView загружаются данные из БД (Access 2003). После этого пользователь должен выбрать любую запись из DataGridView и нажать кнопку формирование заказа. После этого события данные из одного DataGridView попадают в другой (соответственно из одной таблицы БД в другую, временную). После этого если пользователь ошибся, то он может удалить товар по артикулу. Проблема возникает в добавлении этого же товара еще раз. Выдается ошибка (Строки нельзя программным способом добавить в коллекцию строк DataGridView, если элемент управления привязан к данным). Как это избежать? Вот код копирования данных из одного DataGridView в другой.
Код: 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.
 public void AddToTemp()
        {
            string naimenovanie, artikul, kolvo, date, SQLInsertString = "";

            //------------------------------->
            if (listBox1.SelectedIndex == 0)
            {
                foreach (DataGridViewRow r in dataGridView1.SelectedRows)
                {
                  int index = dataGridView3.Rows.Add(r.Clone() as DataGridViewRow);
                  foreach (DataGridViewCell o in r.Cells)
                    {
                        dataGridView3.Rows[index].Cells[o.ColumnIndex].Value = o.Value;
                        dataGridView3.Rows[index].Cells[3].Value = dateTimePicker1.Value.ToShortDateString();
                        MessageBox.Show(DateTime.Now.ToShortDateString().ToString());
                    }
                    
                    naimenovanie = dataGridView3.Rows[index].Cells[0].Value.ToString();
                    artikul = dataGridView3.Rows[index].Cells[1].Value.ToString();
                    kolvo = dataGridView3.Rows[index].Cells[2].Value.ToString();
                    date = dataGridView3.Rows[index].Cells[3].Value.ToString();
                    SQLInsertString = "INSERT INTO temp(Наименование, Артикул, Количество, Дата) VALUES('" + naimenovanie.Replace("'", "''") + "','" + artikul + "','" + kolvo + "'," + date.Replace('.', '/') + ");";
                    database.Open();
                    OleDbCommand SQLCommand = new OleDbCommand();
                    SQLCommand.CommandText = SQLInsertString;

                    SQLCommand.Connection = database;
                    int response = -1;
                    response = SQLCommand.ExecuteNonQuery();
                    database.Close();
                }
            }
            else
            {
                foreach (DataGridViewRow r in dataGridView2.SelectedRows)
                {
                    int index = dataGridView3.Rows.Add(r.Clone() as DataGridViewRow);
                    foreach (DataGridViewCell o in r.Cells)
                    {
                        dataGridView3.Rows[index].Cells[o.ColumnIndex].Value = o.Value;
                        dataGridView3.Rows[index].Cells[3].Value = dateTimePicker1.Value.ToShortDateString();
                    }
                    //------------------------------->
                    naimenovanie = dataGridView3.Rows[index].Cells[0].Value.ToString();
                    artikul = dataGridView3.Rows[index].Cells[1].Value.ToString();
                    kolvo = dataGridView3.Rows[index].Cells[2].Value.ToString();
                    date = dataGridView3.Rows[index].Cells[3].Value.ToString();
                    MessageBox.Show(date);
                    SQLInsertString = "INSERT INTO temp(Наименование, Артикул, Количество, Дата) VALUES('" + naimenovanie.Replace("'", "''") + "','" + artikul + "','" + kolvo + "'," + date.Replace('.', '/') + ");";
                    database.Open();
                    OleDbCommand SQLCommand = new OleDbCommand();
                    SQLCommand.CommandText = SQLInsertString;
                    SQLCommand.Connection = database;
                    int response = -1;
                    response = SQLCommand.ExecuteNonQuery();
                    database.Close();
                }
            }
        }



2) Так же проблема возникает с датой. При добавлении данных во временную таблицу дата вставляется в поле Дата вот такая: 34837839755873E (Поле дата текстовое). Если переделать поле Дата в Дата/Время то выдает вот это: 0:01:56. Как мне этого избежать чтобы дата нормально вводилась? Вот запрос на добавлении данных в том числе и даты:
Код: plsql
1.
 SQLInsertString = "INSERT INTO temp(Наименование, Артикул, Количество, Дата) VALUES('" + naimenovanie.Replace("'", "''") + "','" + artikul + "','" + kolvo + "'," + date.Replace('.', '/') + ");";



Заранее спасибо за помощь
...
Рейтинг: 0 / 0
19.07.2013, 12:45
    #38336769
Syrex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы при добавлении записи в DataGridView и проблема при добавлении с даты.
1. Свяжите DataGridView c данными и не мучайтесь
2. Используйте параметры для запросов
...
Рейтинг: 0 / 0
19.07.2013, 12:52
    #38336785
guest786
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы при добавлении записи в DataGridView и проблема при добавлении с даты.
Syrex1. Свяжите DataGridView c данными и не мучайтесь
2. Используйте параметры для запросов

Спасибо большое за ответ. а можно будет по подробней по 1 и 2 пункту. я просто немного не понял что Вы имеете ввиду( желательно с примерами). Заранее спасибо
...
Рейтинг: 0 / 0
19.07.2013, 13:38
    #38336892
Syrex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы при добавлении записи в DataGridView и проблема при добавлении с даты.
1. msdn1
2. msdn2
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблемы при добавлении записи в DataGridView и проблема при добавлении с даты. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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