2011年11月30日 星期三

c# DatatableTo Linq Group by

找出dt1裡的以尺寸跟顏色來Group by
統計數量

下面是將文字變0

///  
/// 回傳數字Decimal,非數字及空白都變成0 
///  
/// 傳入字串。
public static Decimal ToDecimal(string pInt)
{
Decimal mReturn = 0;
if (pInt == "")
{
mReturn = 0;
}
else
{
if (IsNumeric(pInt))
{
mReturn = Convert.ToDecimal(pInt);
}
else
{
mReturn = 0;
}
}
return mReturn;
}


var QueryA =( from u in dt1.AsEnumerable() 
group u by new { CX_Size = u["CX_Size"], CX_Color_Name = u["CX_Color_Name"] } into g
select new
{
CX_Size = g.Key.CX_Size,
CX_Color_Name = g.Key.CX_Color_Name,
CX_Quantity = g.Sum(p => Convert.ToDecimal(PublicClass.ToDecimal(p["CX_Quantity"].ToString()))),
CX_Amount = g.Sum(p => Convert.ToDecimal(PublicClass.ToDecimal(p["CX_Amount"].ToString())))
}).ToList();
最後再用迴圈來統計

foreach (var mRowA in QueryA)
{
//做處理 

}

c# 簡單做流水號的方法

註我的流水號是 (民國年三碼) + 月月 + 三碼流水號
所以後面有-1911
這是做月份的方式以此類推後面可以有日的


//取得流水號
string Sql1 = " select top 1 convert(int,substring(CX_Order_No,6,3)) as maxNo from QuoteList where substring(CX_Order_No,1,5)=@yyyMM order by convert(int,substring(CX_Order_No,6,3)) desc ";
SqlCommand cmd1 = new SqlCommand(Sql1, conn);

decimal myyy = PublicClass.ToDecimal(DateTime.Now.Year.ToString() )- 1911;
myyyyMM = myyy.ToString() + int.Parse(DateTime.Now.Month.ToString()).ToString("00");
cmd1.Parameters.AddWithValue("@yyyMM", myyyyMM);
DataTable dt1 = new DataTable();
SqlDataAdapter da1 = new SqlDataAdapter(cmd1);
da1.Fill(dt1);

if (dt1.Rows.Count > 0)
{
myyyyMM = myyyyMM + int.Parse( ( PublicClass.ToDecimal(dt1.Rows[0]["maxNo"].ToString()) + 1).ToString()).ToString("000");//有時給他加1
}
else
{
myyyyMM = myyyyMM + "001";//沒有時就給他001
}

c# 不足位數補0

月份補成兩位數
string test = int.Parse(DateTime.Now.Month.ToString()).ToString("00");


string test = string.Format("{0:00}", Convert.ToInt16(mNow.Month));

Asp.net 簡單的提示訊息視窗

在ap裡有msgbox
在asp.net雖然現在有很多方法
但最簡單的方是就是下面的方式啦
因為常用!!

c#
protected void AJaxShowMessage(string Message)
{
string scriptA = string.Empty;
string messageA = string.Empty;
messageA = Message.Replace("'", "\\");
messageA = messageA.Replace("\r\n", "\\n"); 
scriptA = string.Format("alert('{0}');", messageA);
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", scriptA, true);
}