SORU
5 Ocak 2011, ÇARŞAMBA


Datetime veri türü için datetime2 veri türü dönüştürme Aralık dışı değer sonuçlandı

Benim HomeController içinde aşağıdaki kodu var:

    public ActionResult Edit(int id)
    {
        var ArticleToEdit = (from m in _db.ArticleSet where m.storyId == id select m).First();
        return View(ArticleToEdit);
    }

    [ValidateInput(false)]
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Edit(Article ArticleToEdit)
    {

        var originalArticle = (from m in _db.ArticleSet where m.storyId == ArticleToEdit.storyId select m).First();
        if (!ModelState.IsValid)
            return View(originalArticle);

        _db.ApplyPropertyChanges(originalArticle.EntityKey.EntitySetName, ArticleToEdit);
        _db.SaveChanges();
        return RedirectToAction("Index");

    }

Ve bu Düzenleme yöntemi: görünümdür

<% using (Html.BeginForm()) {%>

    <fieldset>
        <legend>Fields</legend>
        <p>
            <label for="headline">Headline</label>
            <%= Html.TextBox("headline") %>
        </p>
        <p>
            <label for="story">Story <span>( HTML Allowed )</span></label>
            <%= Html.TextArea("story") %>
        </p>
        <p>
            <label for="image">Image URL</label>
            <%= Html.TextBox("image") %>
        </p>
        <p>
            <input type="submit" value="Post" />
        </p>
    </fieldset>

<% } %>

Gönder düğmesini bastığımda hata alıyorum: {"The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.\r\nThe statement has been terminated."} Herhangi bir fikir sorun nedir? Ben varsayarak bu düzenleme yöntemi etmeye güncelleştirme gönderildi değeri DB için düzenlenmiş ama nedense değil sevme... Rağmen neden göremiyorum tarihi yer olarak değil bahsedilen denetleyicisi yöntemi için düzenlemek?

CEVAP
5 Ocak 2011, ÇARŞAMBA


Sorun sadece formdaki verileri (başlık, hikaye ve resim) ile doldurulan bir model bir nesne ile ApplyPropertyChanges kullanıyorsun. ApplyPropertyChanges nesne, başlatılmamış dahil olmak üzere tüm özellikleri değişiklikleri uygular DATETIME SQL Server alanının dışında olan 0001-01-01, ayarlanır DateTime,.

Yerine kullanarak ApplyPropertyChanges istiyorum tavsiye almak nesnesi olma değiştirilmiş, değişiklik belirli alanlar form düzenler, sonra da tasarruf nesne ile bu değişiklikler; bu şekilde, sadece değişen alanları değiştirilmiş. Alternatif olarak, diğer alanlar doldurulur ile sayfanızdaki gizli giriş yeri olabilir, ama eşzamanlı düzenlemeler ile çok samimi olmaz.

Güncelleme:

Burada sadece nesne (bu SERİ için SQL kullanıyorsanız varsayarak) bazı alanlar güncelleme test edilmemiş bir örnek:

var story = _db.ArticleSet.First(a => a.storyId == ArticleToEdit.storyId);
story.headline = ArticleToEdit.headline;
story.story = ArticleToEdit.story;
story.image = ArticleToEdit.image;
story.modifiedDate = DateTime.Now;
_db.SubmitChanges();

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ElChakotay Andrich

    ElChakotay A

    10 EKİM 2013
  • GALERNAYA20

    GALERNAYA20

    19 NİSAN 2011
  • Mismag822 - The Card Trick Teacher

    Mismag822 -

    18 EKİM 2008