星期一, 1月 30, 2006

VS2005 Formview如何加入當前日期

這個過年努力地在家與ASP.Net奮鬥,參考資料不多還真是困擾啊~~閒話不多說,這次來說說FormView。
VS2005的FormView提供程式設計師快速方面的資料輸入樣版,而且比DetailView靈活得多。因為想要做個簡單的CMS,必備的欄位不外乎id, author, title, content, date。author可以用sqldatasource的insertquery來加入profile參數,因此這不困難。那如何加入日期呢?天真的我立刻想:那還不容易?一樣在sqldatabase的query塞入預設值不就好了?結果試了半天,單引號、雙引號、單引號加雙引號全試過了,失敗!山不轉路轉,那我在sqldatabase的iteminserting中加入以下的程式碼,失敗!e.Values("r_post") = DateTime.Now; 將insertpapameter的值塞入,失敗! sqldatasource1.InsertCommand.Parameters("@r_post").Value = datetime.now;換個方法,在Formview中加入calendar1,然後用findcontrol指定值,塞入,失敗!
FormView1.FindControl("calendar1").selectedDateTime = DateTime.Now;可是我看了半天,這段應該沒問題,怎麼會說calendar找不到selectedDatetime這個事件?經過千辛萬苦地翻找MSDN和ASP.Net線上資料,終於給我試出來了:
protected void FormView1_ItemInserting(object sender, FormViewInsertEventArgs e)
{
Calendar c = FormView1.FindControl("Calendar1") as Calendar;c.Visible = false;
c.SelectedDate = DateTime.Now;
}
雖然應該還有更精簡地作法,但是現在我沒力氣去嘗試了......

20060622補遺
SqlDataSource1.InsertParameters["date"].DefaultValue=DateTime.Now.ToString();

星期日, 1月 22, 2006

VS2005 AspNetSqlProvider設定法

  Visual Studio 2005裡面的Provider可以輕易地完成煩人的註冊和權限判斷,但是在設定AspNetSqlProvider並不是一件簡單的事。

  首先,我自己的電腦沒有裝SqlServer,太浪費記憶體了。好不容易裝起來,又不知道什麼原因就不能動了。索性就先在主機上開發吧。

  接著問題又來了,我不想要用mdf附加在sql server上,而且我sql server的instance name又不是sqlexpress,於是開始動手修改machine.cofing(路徑是C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG)。試了半天終於試出來了:最重要的一點,不要傻傻地學範例設定加入instance,我怎麼試instance name都不行,沒想到把instance拿掉就行了。

  興高采烈地回家想要把這組設定也帶過來,想說把data source改成sqlserver的ip,結果竟然不行。廢話,沒設user id跟password嘛~~。最後完成的設定如下:題外話,最後設定id跟password那邊又花了我半小時,結果發現很蠢的事:user id=帳號 password=密碼。帳號後面放了打分號........

星期四, 1月 05, 2006

新陳代謝

有一天在做課後練習時,問學生:什麼是新陳代謝?

學生應曰:新陳代謝就是把吃的東西變成大便的過程...