整理一下datatime常用到的方法
DateTime dt = DateTime.Now;
Label1.Text = dt.ToString();//2005-11-5 13:21:25
Label2.Text = dt.ToFileTime().ToString();//127756416859912816
Label3.Text = dt.ToFileTimeUtc().ToString();//127756704859912816
Label4.Text = dt.ToLocalTime().ToString();//2005-11-5 21:21:25
Label5.Text = dt.ToLongDateString().ToString();//2005年11月5日
Label6.Text = dt.ToLongTimeString().ToString();//13:21:25
Label7.Text = dt.ToOADate().ToString();//38661.5565508218
Label8.Text = dt.ToShortDateString().ToString();//2005-11-5
Label9.Text = dt.ToShortTimeString().ToString();//13:21
Label10.Text = dt.ToUniversalTime().ToString();//2005-11-5 5:21:25
Label1.Text = dt.Year.ToString();//2005
Label2.Text = dt.Date.ToString();//2005-11-5 0:00:00
Label3.Text = dt.DayOfWeek.ToString();//Saturday
Label4.Text = dt.DayOfYear.ToString();//309
Label5.Text = dt.Hour.ToString();//13
Label6.Text = dt.Millisecond.ToString();//441
Label7.Text = dt.Minute.ToString();//30
Label8.Text = dt.Month.ToString();//11
Label9.Text = dt.Second.ToString();//28
Label10.Text = dt.Ticks.ToString();//632667942284412864
Label11.Text = dt.TimeOfDay.ToString();//13:30:28.4412864
Label1.Text = dt.ToString();//2005-11-5 13:47:04
Label2.Text = dt.AddYears(1).ToString();//2006-11-5 13:47:04
Label3.Text = dt.AddDays(1.1).ToString();//2005-11-6 16:11:04
Label4.Text = dt.AddHours(1.1).ToString();//2005-11-5 14:53:04
Label5.Text = dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04
Label6.Text = dt.AddMonths(1).ToString();//2005-12-5 13:47:04
Label7.Text = dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05
Label8.Text = dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10
Label9.Text = dt.AddTicks(1000).ToString();//2005-11-5 13:47:04
Label10.Text = dt.CompareTo(dt).ToString();//0
Label11.Text = dt.Add(?).ToString();//问号为一个时间段
Label1.Text = dt.Equals("2005-11-6 16:11:04").ToString();//False
Label2.Text = dt.Equals(dt).ToString();//True
Label3.Text = dt.GetHashCode().ToString();//1474088234
Label4.Text = dt.GetType().ToString();//System.DateTime
Label5.Text = dt.GetTypeCode().ToString();//DateTime
Label1.Text = dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
Label2.Text = dt.GetDateTimeFormats('t')[0].ToString();//14:06
Label3.Text = dt.GetDateTimeFormats('y')[0].ToString();//2005年11月
Label4.Text = dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日
Label5.Text = dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05
Label6.Text = dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05
Label7.Text = dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日
Label8.Text = dt.GetDateTimeFormats('M')[0].ToString();//11月5日
Label9.Text = dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06
Label10.Text = dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06
Label11.Text = dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT
Label1.Text = string.Format("{0:d}",dt);//2005-11-5
Label2.Text = string.Format("{0:D}",dt);//2005年11月5日
Label3.Text = string.Format("{0:f}",dt);//2005年11月5日 14:23
Label4.Text = string.Format("{0:F}",dt);//2005年11月5日 14:23:23
Label5.Text = string.Format("{0:g}",dt);//2005-11-5 14:23
Label6.Text = string.Format("{0:G}",dt);//2005-11-5 14:23:23
Label7.Text = string.Format("{0:M}",dt);//11月5日
Label8.Text = string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT
Label9.Text = string.Format("{0:s}",dt);//2005-11-05T14:23:23
Label10.Text string.Format("{0:t}",dt);//14:23
Label11.Text = string.Format("{0:T}",dt);//14:23:23
Label12.Text = string.Format("{0:u}",dt);//2005-11-05 14:23:23Z
Label13.Text = string.Format("{0:U}",dt);//2005年11月5日 6:23:23
Label14.Text = string.Format("{0:Y}",dt);//2005年11月
Label15.Text = string.Format("{0}",dt);//2005-11-5 14:23:23
Label16.Text = string.Format("{0:yyyyMMddHHmmssffff}",dt);String Format for DateTime [C#]
C# datetime 操作
C#如何判断两个日期是否相等
C# 如何取得兩個 DateTime 日期之間的天數
星期三, 9月 30, 2009
Pass NULL as a Parameter Value to SQLParameter
The following c# code sample shows how to pass Null as a parameter value.
SqlParameter ParamValue= new SqlParameter("@Address", SqlDbType.NVarChar, 20);
ParamValue.Value = DBNull.Value;
Reference:Pass NULL as a Parameter Value to SQLParameter
星期二, 9月 29, 2009
jQuery Intellisense in VS 2008
jQuery的官方下載區(http://docs.jquery.com/Downloading_jQuery#Download_jQuery),在原本的Minified, Packed, Uncompressed版檔案連結下方,多了一個Documentation項目,裡面有Visual Studio的專用文件說明檔: jquery-1.2.x-vsdoc.js。
Reference:
jQuery Intellisense in VS 2008
TIPS-為VS2008加入完整jQuery Intellisense
Reference:
jQuery Intellisense in VS 2008
TIPS-為VS2008加入完整jQuery Intellisense
星期日, 9月 27, 2009
星期五, 9月 25, 2009
星期四, 9月 24, 2009
MS SQL 重覆性資料表處理 Repeat rows ,Group by
第一篇:
--出現多筆時抓取最大值 Select 欄位一,max(欄位二) 欄位二 From Table Group By 欄位一 --出現多筆時抓取最小值 Select 欄位一,min(欄位二) 欄位二 From Table Group By 欄位一
星期三, 9月 23, 2009
MS SQL DATEDIFF(計算兩時間差)
使用Convert、DATEDIFF 函數求得時間差
SELECT design_product_comment_id, design_product_comment_pid, design_product_comment_username, design_product_comment_text,
design_product_comment_category,
CONVERT(varchar(4), DATEDIFF(day, design_product_comment_date, GETDATE())) AS Days, CONVERT(varchar(4), DATEDIFF(hour, design_product_comment_date, GETDATE()) % 24) AS Hours,
CONVERT(varchar(4), DATEDIFF(minute, design_product_comment_date, GETDATE()) % 60) AS Mins
FROM design_product_comment
WHERE (design_product_comment_pid = @dpid) AND (design_product_comment_category = @cid)"
SELECT design_product_comment_id, design_product_comment_pid, design_product_comment_username, design_product_comment_text,
design_product_comment_category,
CONVERT(varchar(4), DATEDIFF(day, design_product_comment_date, GETDATE())) AS Days, CONVERT(varchar(4), DATEDIFF(hour, design_product_comment_date, GETDATE()) % 24) AS Hours,
CONVERT(varchar(4), DATEDIFF(minute, design_product_comment_date, GETDATE()) % 60) AS Mins
FROM design_product_comment
WHERE (design_product_comment_pid = @dpid) AND (design_product_comment_category = @cid)"
星期一, 9月 21, 2009
MS Sql 迴圈
ALTER proc [dbo].[sp_showDesignProducts]
as
/*宣告cursor*/
declare dpid_set CURSOR FOR
SELECT DISTINCT design_product_id FROM design_product
/*開啟cursor連結*/
open dpid_set
declare @dpid nvarchar(50)
/*清單將第一筆資料存入@dpid*/
fetch next from dpid_set into @dpid
/*檢查是否有資料,0代表有*/
while(@@fetch_status=0)
begin
/*取出每一筆專案id其所屬的上傳圖片的第一張圖*/
SELECT allResult.* FROM (
SELECT row_number() OVER (ORDER BY design_product_pictures_id) AS rid, * FROM design_product_pictures WHERE (design_product_pictures_pid = @dpid)) as allResult
where allResult.rid = 1
fetch NEXT from dpid_set into @dpid
end
/*關閉cursor連結*/
close dpid_set
/*移除cursor連結*/
deallocate dpid_set
as
/*宣告cursor*/
declare dpid_set CURSOR FOR
SELECT DISTINCT design_product_id FROM design_product
/*開啟cursor連結*/
open dpid_set
declare @dpid nvarchar(50)
/*清單將第一筆資料存入@dpid*/
fetch next from dpid_set into @dpid
/*檢查是否有資料,0代表有*/
while(@@fetch_status=0)
begin
/*取出每一筆專案id其所屬的上傳圖片的第一張圖*/
SELECT allResult.* FROM (
SELECT row_number() OVER (ORDER BY design_product_pictures_id) AS rid, * FROM design_product_pictures WHERE (design_product_pictures_pid = @dpid)) as allResult
where allResult.rid = 1
fetch NEXT from dpid_set into @dpid
end
/*關閉cursor連結*/
close dpid_set
/*移除cursor連結*/
deallocate dpid_set
JQUERY-Each
//jquery each func 初試
//btn set,找出表格被勾選的checkbox
$("#btnCommentDelete").click(function() {
var valSet = "";
$("#ctl00_ContentPlaceHolder1_gvComment input:enabled[type=checkbox]").each(function(i, obj) {
if ($(obj).attr("id") == "cbAllComment") {
}
else {
valSet += $(obj).attr("value") + ',';
//移除表格列
$(obj).parents("#ctl00_ContentPlaceHolder1_gvComment tr").remove();
}
});
alert(valSet);
if (valSet != "") {
$.get("comment_delete.aspx", { cidset: valSet }, function(data) {
alert(data);
});
}
else {
Boxy.alert("No Data");
}
});
String Split
//1,2,3,4,5
string[] commentSet = commentValStr.Split(new char[]{','});//['1','2','3','4','5']
string[] commentSet = commentValStr.Split(new char[]{','});//['1','2','3','4','5']
星期日, 9月 20, 2009
使用Profile.GetProfile()取得指定帳戶的Profile
///
/// 取得profile 暱稱
///
///
///
public string GetNickName(string username)
{
//MembershipUser currecter;
//currecter = Membership.GetUser(username);
string nickname = "未公開";
ProfileCommon pc = Profile.GetProfile(username);
string tmp = pc.個人資訊.暱稱;
if (tmp != "")
nickname = tmp;
return nickname;
}
/// 取得profile 暱稱
///
///
///
public string GetNickName(string username)
{
//MembershipUser currecter;
//currecter = Membership.GetUser(username);
string nickname = "未公開";
ProfileCommon pc = Profile.GetProfile(username);
string tmp = pc.個人資訊.暱稱;
if (tmp != "")
nickname = tmp;
return nickname;
}
星期五, 9月 18, 2009
Calendar Extender for select month
選擇月份的月曆Calendar Extender ~
How to show and select month/year in Calendar Extender by aghausman
測試結果一切正常,有需要的朋友參考吧~
Reference:
http://www.aghausman.net/asp/how-to-show-and-select-monthyear-in-calendar-extender.html
MSSQL 取得目前新增資料的索引(PK)
取出當前新增資料的索引。
語法如下:
string sql = "insert into pictures_annotation (pictures_annotation_top,pictures_annotation_left,pictures_annotation_width,pictures_annotation_height,pictures_annotation_text,pictures_annotation_pid,pictures_annotation_username,pictures_annotation_date)values(@top,@left,@width,@height,@text,@pid,@username,@date);select @NewPK = @@IDENTITY";
this.sqlConn.Open();
this.sqlCmd = new SqlCommand(sql, this.sqlConn);
this.sqlCmd.Parameters.Add("top", SqlDbType.Int).Value = (int)Convert.ToDouble(top);
this.sqlCmd.Parameters.Add("left", SqlDbType.Int).Value = (int)Convert.ToDouble(left);
....
.......省略
SqlParameter pkPara = new SqlParameter("NewPK",SqlDbType.Int);
pkPara.Direction = ParameterDirection.Output;
this.sqlCmd.Parameters.Add(pkPara);
this.sqlCmd.ExecuteNonQuery();
this.sqlConn.Close();
//get current aid
aid = this.sqlCmd.Parameters["NewPK"].Value.ToString();
語法如下:
string sql = "insert into pictures_annotation (pictures_annotation_top,pictures_annotation_left,pictures_annotation_width,pictures_annotation_height,pictures_annotation_text,pictures_annotation_pid,pictures_annotation_username,pictures_annotation_date)values(@top,@left,@width,@height,@text,@pid,@username,@date);select @NewPK = @@IDENTITY";
this.sqlConn.Open();
this.sqlCmd = new SqlCommand(sql, this.sqlConn);
this.sqlCmd.Parameters.Add("top", SqlDbType.Int).Value = (int)Convert.ToDouble(top);
this.sqlCmd.Parameters.Add("left", SqlDbType.Int).Value = (int)Convert.ToDouble(left);
....
.......省略
SqlParameter pkPara = new SqlParameter("NewPK",SqlDbType.Int);
pkPara.Direction = ParameterDirection.Output;
this.sqlCmd.Parameters.Add(pkPara);
this.sqlCmd.ExecuteNonQuery();
this.sqlConn.Close();
//get current aid
aid = this.sqlCmd.Parameters["NewPK"].Value.ToString();
有關SiteMap SiteMapNode Root問題
今天為了讓menu control能套上美美的css,
使用了ASP.NET 2.0 CSS Friendly Control Adapters 1.0,
因為第一次使用sitemap,雖然知道根節點只能設一個,但我要能一開始就能秀很多選項,
原來是要設定將根節點hidden就好啦~
Reference:
TreeView使用SiteMapNode製作結點,root只能有一個嗎?
淺介 ASP.NET 2.0 CSS Friendly Control Adapters 1.0
使用了ASP.NET 2.0 CSS Friendly Control Adapters 1.0,
因為第一次使用sitemap,雖然知道根節點只能設一個,但我要能一開始就能秀很多選項,
原來是要設定
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="#" title="根節點" description="不會顯示">
....
</siteMap>
<!--
sitemap角色權限讀取 securityTrimmingEnabled="true"
-->
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<add name="XmlSiteMapProvider" description="SiteMap provider which reads in .sitmap XML files."
type="System.Web.XmlSiteMapProvider,System.Web,Version=2.0.3600.0, Culture= neutral,PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="Web.sitemap" securityTrimmingEnabled="true"/>
</providers>
</siteMap>
Reference:
TreeView使用SiteMapNode製作結點,root只能有一個嗎?
淺介 ASP.NET 2.0 CSS Friendly Control Adapters 1.0
[Javascript 茶包筆記] setTimeout 倒數計數
專案需用到倒數計數的功能,
以下是一個簡單的測試版本,
另外又在網上找到一個將秒數轉時分秒(TimeToHMS)
javascript func。
script範例程式如下:
//20分鐘
var allTime = 1200000;
$(document).ready(function(){
$("#myDiv").css("border","3px solid red");
DoTestCount();
});
function DoTestCount()
{
if(allTime <= 0){
//dopostback
__doPostBack(this.btnSubmit,"")
}
else
{
var timeTmp = allTime/1000;
var currentTimeHMS = TimeToHMS(timeTmp)
$("#myDiv").text(currentTimeHMS)
setTimeout("DoTestCount()",1000);
}
allTime-=1000;
}
/* convert seconds value to H:MM:SS format */
function TimeToHMS(seconds)
{
sec = seconds % 60;
temp = ( seconds - sec ) / 60;
minute = temp % 60;
hour = (temp - minute) / 60;
if(!(isFinite(sec) && isFinite(minute) && isFinite(hour))) /* invalid time */
{
return ("");
}
time_str = hour;
time_str += ":";
time_str+=(minute<10)?("0"+minute):minute;
time_str+=":";
time_str+=(sec<10)?("0"+sec):sec;
return (time_str);
}
網頁配置如下:
以下是一個簡單的測試版本,
另外又在網上找到一個將秒數轉時分秒(TimeToHMS)
javascript func。
script範例程式如下:
//20分鐘
var allTime = 1200000;
$(document).ready(function(){
$("#myDiv").css("border","3px solid red");
DoTestCount();
});
function DoTestCount()
{
if(allTime <= 0){
//dopostback
__doPostBack(this.btnSubmit,"")
}
else
{
var timeTmp = allTime/1000;
var currentTimeHMS = TimeToHMS(timeTmp)
$("#myDiv").text(currentTimeHMS)
setTimeout("DoTestCount()",1000);
}
allTime-=1000;
}
/* convert seconds value to H:MM:SS format */
function TimeToHMS(seconds)
{
sec = seconds % 60;
temp = ( seconds - sec ) / 60;
minute = temp % 60;
hour = (temp - minute) / 60;
if(!(isFinite(sec) && isFinite(minute) && isFinite(hour))) /* invalid time */
{
return ("");
}
time_str = hour;
time_str += ":";
time_str+=(minute<10)?("0"+minute):minute;
time_str+=":";
time_str+=(sec<10)?("0"+sec):sec;
return (time_str);
}
網頁配置如下:
Asp.NET buttom doPostBack
今天剛好要用到倒數時間來觸發button 的click事件,
才發現原來頁面上配置button時,
原來是不會自動產生__doPoskBack這個func
要自已加入
if(!IsPostBack)
this.Page.GetPostBackEventReference(this.btnSubmit, "");
MS SQL 更改SA帳號密碼
開啟SQL Server Management Studio,「安全性」->「登入」->右邊的「SA」按右鍵,選屬性,就可以改了。
1. sp_droplogin:移除 Microsoft SQL Server 登入,防止以該登入名稱存取 SQL Server 的執行個體。
2. sp_addlogin:建立一項新的 SQL Server 登入,讓使用者利用 SQL Server 驗證來連接 SQL Server 的執行個體。
3. sp_grantdbaccess:將資料庫使用者加入目前資料庫中。
4. sp_revokedbaccess:從目前資料庫移除資料庫使用者。
Reference:
http://msdn.microsoft.com/zh-tw/library/ms174428.aspx
http://msdn.microsoft.com/zh-tw/library/ms162806.aspx
1. sp_droplogin:移除 Microsoft SQL Server 登入,防止以該登入名稱存取 SQL Server 的執行個體。
2. sp_addlogin:建立一項新的 SQL Server 登入,讓使用者利用 SQL Server 驗證來連接 SQL Server 的執行個體。
3. sp_grantdbaccess:將資料庫使用者加入目前資料庫中。
4. sp_revokedbaccess:從目前資料庫移除資料庫使用者。
Reference:
http://msdn.microsoft.com/zh-tw/library/ms174428.aspx
http://msdn.microsoft.com/zh-tw/library/ms162806.aspx
星期三, 9月 02, 2009
Url Rewriting Survey
URL rewrite 的幾種做法 By 艾倫郭
以下為Url Rewriting的幾種做法:
Approach 1: Use Request.PathInfo Parameters Instead of QueryStrings
Approach 2: Using an HttpModule to Perform URL Rewriting
Approach 3: Using an HttpModule to Perform Extension-Less URL Rewriting with IIS7
Approach 4: ISAPIRewrite to enable Extension-less URL Rewriting for IIS5 and IIS6
簡易的 Url Rewriting 隱藏 Querystring
訂閱:
文章 (Atom)