Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как правильно сохранить накладную WinForm С#+MySQL / 3 сообщений из 3, страница 1 из 1
21.05.2014, 23:51:08
    #38648208
Rino256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно сохранить накладную WinForm С#+MySQL
Здравствуйте, уважаемые спецы! Очень нужен ваш совет! Есть форма, где формируется накладная на заказ товаров. В форме накладной,помимо полей Заказчик и т.д. , имеется объект dataGridView, который содержит инфу о товаре: Название, Цена за 1 штуку, Количество, Общая цена(Цена за 1 штуку* Количество). Стоит задача сохранить данную накладную в базе. В базе есть таблица orders, где есть поля: Orders_ClientName, CarDriver(водитель, доставляющий заказ), Orders_GoodsName(наименование товара), Orders_GoodsCount, Orders_GoodsTotalPrice. Вопрос: Если строк в datagridview будет больше, несколько(допустим несколько названий товаров) уместить в одном поле, если это возможно? Если нет, как тогда можно сохранить так, чтоб набор товаров закрепить за конкретным заказчиком? P.S. в MySQL совсем еще новичек и многого еще не знаю,так что заранее ссори, если начинаю тупить. Заранее спасибо большое!
...
Рейтинг: 0 / 0
22.05.2014, 07:42:05
    #38648318
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно сохранить накладную WinForm С#+MySQL
Rino256опрос: Если строк в datagridview будет больше, несколько(допустим несколько названий товаров) уместить в одном поле, если это возможно? Если нет, как тогда можно сохранить так, чтоб набор товаров закрепить за конкретным заказчиком?Нет. Для этого создаётся вторая таблица OrderDetails со ссылкой на первую (на ид заказа). Читайте про нормализацию
...
Рейтинг: 0 / 0
23.05.2014, 22:30:16
    #38650780
Rino256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно сохранить накладную WinForm С#+MySQL
Спасибо большое за совет. Я создал в таблице OrdersGoodsDetails поле OrdersID и сделал Foreign Key на поле OrdersID таблицы Orders. Однако при добавлении у меня вылетает вот такая ошибка: Cannot add or update a child row: a foreign key constraint fails (`warehouse`.`ordersgoodsdetails`, CONSTRAINT `ordersgoodsdetails_ibfk_1` FOREIGN KEY (`OrdersID`) REFERENCES `orders` (`OrdersID`))

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
this.DBConnect();
            this.OpenConnect();

            string querry = "INSERT INTO Orders( OrdersClientsName, OrdersDate,OrdersDriverName, OrdersCarModel, OrdersCarKey, OrdersTotalPrice)" + "VALUES('"+ ClientsName + "','" + Date + "','" + Driver +"','"+CarModel+"','"+CarKey+"','"+TotalPrice+"');"; //добавление данных в OrdersID
            this.cmd = new MySqlCommand(querry, this.connection);
            this.cmd.ExecuteNonQuery();
            this.CloseConnect();

            this.DBConnect();
            this.OpenConnect();
            for (int i = 0; i < dt.RowCount - 1; i++)
            {
                double price = Convert.ToDouble(dt.Rows[i].Cells[1].Value.ToString());
                int count = Convert.ToInt32(dt.Rows[i].Cells[2].Value.ToString());
                double goods_total_price = Convert.ToDouble(dt.Rows[i].Cells[3].Value.ToString());
                querry = "INSERT INTO OrdersGoodsDetails(OrdersGoodsDetails_GoodsName, OrdersGoodsDetails_GoodsPrice,OrdersGoodsDetails_GoodsCount, OrdersGoodsDetails_GoodsTotalPrice)" + "VALUES('" + dt.Rows[i].Cells[0].Value.ToString() + "','" + price + "','" + count + "','" + goods_total_price + "');"; //добавление выбранного товара из datagridview в таблицу OrdersGoodsDetails
                this.cmd = new MySqlCommand(querry, this.connection);
                this.cmd.ExecuteNonQuery();//здесь вылетает ошибка
            }
            this.CloseConnect();




Код таблицы Orders(MySql):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE IF NOT EXISTS `orders` (
  `OrdersID` int(11) NOT NULL AUTO_INCREMENT,
  `OrdersClientsName` varchar(15) NOT NULL,
  `OrdersDate` varchar(20) NOT NULL,
  `OrdersDriverName` varchar(20) NOT NULL,
  `OrdersCarModel` varchar(20) NOT NULL,
  `OrdersCarKey` varchar(10) NOT NULL,
  `OrdersTotalPrice` double NOT NULL,
  PRIMARY KEY (`OrdersID`),
  KEY `DriverID` (`OrdersDriverName`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;



Код OrdersGoodsDetails(MySql):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE TABLE IF NOT EXISTS `ordersgoodsdetails` (
  `OrdersGoodsDetailsID` int(11) NOT NULL AUTO_INCREMENT,
  `OrdersID` int(11) NOT NULL,
  `OrdersGoodsDetails_GoodsName` varchar(15) NOT NULL,
  `OrdersGoodsDetails_GoodsPrice` double NOT NULL,
  `OrdersGoodsDetails_GoodsCount` int(11) NOT NULL,
  `OrdersGoodsDetails_GoodsTotalPrice` double NOT NULL,
  PRIMARY KEY (`OrdersGoodsDetailsID`),
  KEY `OrdersID` (`OrdersID`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

--
-- Ограничения внешнего ключа сохраненных таблиц
--

--
-- Ограничения внешнего ключа таблицы `ordersgoodsdetails`
--
ALTER TABLE `ordersgoodsdetails`
  ADD CONSTRAINT `ordersgoodsdetails_ibfk_1` FOREIGN KEY (`OrdersID`) REFERENCES `orders` (`OrdersID`);



ПОмогите пожалуйста! Заранее спасибо большое!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как правильно сохранить накладную WinForm С#+MySQL / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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