Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / извлечь дату из бд - mvc 4 / 20 сообщений из 20, страница 1 из 1
19.03.2013, 13:02
    #38189517
Андрюхин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
ситуация следующая. Реализую работу с бд. Сделал представление где выводятся данные из бд, из всего массива выведенных данных выбираю одну запись кнопккой "изменить" нажимаю "изменить" выходит др представление...где вывелась лишь одна моя выбранная запись из бд и естесвенно с заполненными полями..нажимаю на каждое поле можно изменить его содержимое, все измененные данные сохраняются нормально, но когда доходим до сохранения даты то ошибка:

Переполнение SqlDateTime. Должно находиться в пределах от 1/1/1753 12:00:00 AM и 12/31/9999 11:59:59 PM


Код выглядет так:


Код: html
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.
[SRC c#]@model MvcApplication3.Models.o_klient


@{
    ViewBag.Title = "Redaktor";
    Layout = "~/Views/Shared/_Layout.cshtml";
    string value = "";
    //string test = "ssss";
    ////string city = "";
    MvcApplication3.Models.info_klient_second data = new MvcApplication3.Models.info_klient_second();
}


<div  style="padding:10px;border:1px solid #0094ff; background-color:#d9fffb;border-radius:10px;margin-top:150px;">

@using (Html.BeginForm("Redaktor", "Pervii", new { id_redaktor = ViewBag.id }, FormMethod.Post))
{
    foreach (MvcApplication3.Models.info_klient_second data_new in ViewBag.Data)
    {
      
   <table>
 <tr><td><p>Город:</p></td><td>@Html.TextBoxFor(x => x.GOROD, new { @Value = data_new.GOROD }) @Html.ValidationMessageFor(model => model.GOROD)</td></tr>
 <tr><td><p>ФИО:</p></td><td>@Html.TextBoxFor(x => x.FIO, new { @Value = data_new.FIO }) @Html.ValidationMessageFor(model => model.FIO)</td></tr>
 <tr><td><p>Сорт:</p></td><td>@Html.TextBoxFor(x => x.sort1, new { @Value = data_new.sort1 }) @Html.ValidationMessageFor(model => model.sort1)</td></tr>
 <tr><td><p>Наименование:</p></td><td>@Html.TextBoxFor(x => x.naimenovanie1, new { @Value = data_new.naimenovanie1 }) @Html.ValidationMessageFor(model => model.naimenovanie1)</td></tr>
 <tr><td><p>Дата покупки:</p></td><td>@Html.TextBoxFor(x => x.DATA_POKUPKI, new { @Value = data_new.DATA_POKUPKI }) @Html.ValidationMessageFor(model => model.DATA_POKUPKI)</td></tr>
 <tr><td><p>Цена:</p></td><td>@Html.TextBoxFor(x => x.CENA, new { @Value = data_new.CENA }) @Html.ValidationMessageFor(model => model.CENA)</td></tr>
  </table> 
 <input type="hidden" name="change" value="change" />@* 
  <input type="hidden" name="id_redaktor" value ="" />*@   
 <input type="submit" class="button" value="Сохранить" />
    }
}
    </div>

[/SRC]


в контроллере следующее:

Код: 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.
public ActionResult Redaktor(o_klient model, string id_redaktor, string change, int? page)//редактирование записей в бд
        {
            string day;
            string month;
            string year;
            string data_result;

            day = model.DATA_POKUPKI.ToString().Substring(0, 2).Replace(".","");
            month = model.DATA_POKUPKI.ToString().Substring(2, 3).Replace(".", "");
            year = model.DATA_POKUPKI.ToString().Substring(5, 6).Replace(" ", "").Replace(".", "");
            data_result = day + month + year;
            ViewBag.id = id_redaktor;//для сохранения ид_редактор для др представления т.к. он обычно обнуляется при переходе в др представление
            if (change == "change")
            {
            var query = // выбираем таблицу клиент_нью  где ид = переданному ид(с представления в качестве параметра)
                    from a in db.klient_new
                    where a.id == Convert.ToInt32(id_redaktor)
                    select a;

                    foreach (var a in query)//
                    {
                        a.fio=model.FIO;
                        a.gorod = model.GOROD;
                        a.tovar.naimenovanie = model.naimenovanie1;
                        a.tovar.sort = model.sort1;
                        a.tovar.cena.cena1 = model.CENA;
                        a.tovar.cena.Data_pokupki = Convert.ToDateTime(year+"-"+month+"-"+day);
                    }
                    try
                    {
                       
                    }
                    catch (Exception ex) {};
                    
                    db.SubmitChanges();
                    db = new DataClasses1DataContext();
                    List<o_klient> item = new List<o_klient>();
                    int pageNumber = page ?? 1;
                    int pageSize = 10;
                    execute();
                    ViewBag.data = spisok;
                    ViewBag.value = "1";
                    return View("Index", spisok.ToPagedList(pageNumber, pageSize));                  
                }
...
Рейтинг: 0 / 0
19.03.2013, 13:17
    #38189556
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
Андрюхин,

a.tovar.cena.Data_pokupki = year+month+day;
...
Рейтинг: 0 / 0
19.03.2013, 13:22
    #38189578
Андрюхин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
carrotik,

год меся число др типа же строкового!
...
Рейтинг: 0 / 0
19.03.2013, 13:31
    #38189608
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
зачем?
Код: c#
1.
2.
3.
day = model.DATA_POKUPKI.ToString().Substring(0, 2).Replace(".","");
            month = model.DATA_POKUPKI.ToString().Substring(2, 3).Replace(".", "");
            year = model.DATA_POKUPKI.ToString().Substring(5, 6).Replace(" ", "").Replace(".", "");


model.DATA_POKUPKI как я понимаю это DateTime тогда , что мешает сделать
a.tovar.cena.Data_pokupki = model.DATA_POKUPKI .
Да и вообще посмотреть что в у тебя там в дебаге в том поле ?
Вытаскиваешь 1 запись и нафига её в foreach ?

п.с. проблемы с кодом явные, надеюсь ты студент, а не продакшен код пишешь
...
Рейтинг: 0 / 0
19.03.2013, 13:36
    #38189618
Андрюхин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
handmadeFromRu,

а как ты данные можешь извлечь из вьюбега? без цикла!
...
Рейтинг: 0 / 0
19.03.2013, 13:42
    #38189645
Андрюхин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
дата извлекается в таком виде: 10/23/2013 00:00:00 я же потом нажимаю кнопку сохранить и прога пишет что Переполнение SqlDateTime. Должно находиться в пределах от 1/1/1753 12:00:00 AM и 12/31/9999 11:59:59 PM.
...
Рейтинг: 0 / 0
19.03.2013, 13:44
    #38189649
Андрюхин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
handmadeFromRu,
у меня там 01.01.0001
...
Рейтинг: 0 / 0
19.03.2013, 13:46
    #38189659
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
АндрюхинhandmadeFromRu,

а как ты данные можешь извлечь из вьюбега? без цикла!

очень просто
Код: c#
1.
var dd = (from a in db.klient_new  where a.id == Convert.ToInt32(id_redaktor) select a).SingleOrDefault();


или материлизация не знакомая штука?
...
Рейтинг: 0 / 0
19.03.2013, 13:46
    #38189662
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
АндрюхинhandmadeFromRu,
у меня там 01.01.0001
эм как бы вот тебе и проблема )
...
Рейтинг: 0 / 0
19.03.2013, 13:49
    #38189669
Андрюхин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
handmadeFromRu,

вот как избавиться от 01.01.0001 я не знаю
...
Рейтинг: 0 / 0
19.03.2013, 13:53
    #38189687
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
поле твоей модели во вьюшки не заполняется и возвращается минимальная значение DateTime или в процессе преобразования того что положил в хтмл в поле отвечающее за дату не получилось преобразовать в дату и соответственно выставилось по умолчанию значение( смотри формат даты)
...
Рейтинг: 0 / 0
19.03.2013, 13:54
    #38189693
Андрюхин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
в базе дата нормального вида а когда оттуда извлекается в textboxfor то такого вида 10/23/2013 00:00:00 ....и даллее в таком виде
10/23/2013 00:00:00 ее уже не сохранить..и пользователю приходиться менять дату на 2013-10-23
...
Рейтинг: 0 / 0
19.03.2013, 15:07
    #38189864
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
дело не в том как бд хранится, а то что модель не смогла собрать это поле из формы правильно, скорее всего связано с локализацией. смотрите инфу про биндинг полей типа DateTime
...
Рейтинг: 0 / 0
19.03.2013, 15:36
    #38189925
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
.. а в этом моделисте-конструкторе нельзя посмотреть результирующий запрос (т.е. UPDATE), который идет к SQL-серверу? .. какой сервер, кстати ..?
...
Рейтинг: 0 / 0
19.03.2013, 15:44
    #38189939
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
carrotik,
и какой профит от твоего совета?
...
Рейтинг: 0 / 0
19.03.2013, 16:00
    #38189980
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
handmadeFromRu,

...если в запросе что-то типа UPDATE a SET [data_pokupki]='18/03/2013' WHERE [id]=2 - то может в консерватории надо что-то поменять?
...
Рейтинг: 0 / 0
19.03.2013, 16:11
    #38190007
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
Жесть. Не код, а полное уг, от хоторого смердит за версту. Просто страшно жить.
...
Рейтинг: 0 / 0
19.03.2013, 16:17
    #38190025
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
carrotikhandmadeFromRu,

...если в запросе что-то типа UPDATE a SET [data_pokupki]='18/03/2013' WHERE [id]=2 - то может в консерватории надо что-то поменять?
о госпади...даже отвечать не буду.

п.с. проблема не в запросе, если ты не понял еще. А в том что товарищ не может вернуть дату из вьюхи по модели и она у него всегда DateTime.Min.
...
Рейтинг: 0 / 0
19.03.2013, 16:52
    #38190124
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
МСУЖесть. Не код, а полное уг, от хоторого смердит за версту. Просто страшно жить.
+1
Почитайте МСДН что-ли, ёксель-моксель.
...
Рейтинг: 0 / 0
19.03.2013, 17:23
    #38190227
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечь дату из бд - mvc 4
Если пользователь может не указать дату в представлении изменения записи, то надо сверять на уровне доступа к данным с DateTime.MinValue, и если равно, то писать в БД DBNull.Value.

Если пользователь обязан указать дату, то не понятно какого х она до уровня доступа к данным не доходит.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / извлечь дату из бд - mvc 4 / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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