[C#] Convert 取整數問題
2010年10月18日 星期一
今天在統計圖表時,發現了小數進位問題 原來用 Convert 取整數時小數會進位,之後使用(int)結果便是正確,所以Convert 跟 (int)的轉型機制不同,使用在浮點運算要小心。 double d = 108.555;
int i1 = Convert.ToInt32(d); // = 109
int i2 = (int)(d); // = 108
今天在統計圖表時,發現了小數進位問題 原來用 Convert 取整數時小數會進位,之後使用(int)結果便是正確,所以Convert 跟 (int)的轉型機制不同,使用在浮點運算要小心。 double d = 108.555;
int i1 = Convert.ToInt32(d); // = 109
int i2 = (int)(d); // = 108
今天在新增table後在去查詢時發現錯誤,訊息為:
「無法解析 equal to 作業中 "Chinese_Taiwan_Stroke_CI_AS" 與"Chinese_Taiwan_Stroke_CI_AS_WS" 之間的定序衝突。」
語法為:
select * from a inner join b on a.pk=b.rpk
因為是剛新增的table裡面都還沒有資料,所以就把table drop 掉,在新建
這時候就加入指定定序的語法
CREATE TABLE [dbo].[WINDOW_DEP](
[UserID] [nvarchar](255) collate Chinese_Taiwan_Stroke_CI_AS NULL ,
[DepID] [nvarchar](255) collate Chinese_Taiwan_Stroke_CI_AS NULL
) ON [PRIMARY]
若此Table已有資料的話,那就只能從query去下手了
例:
SELECT WINDOW_DEP.DEPID
FROM WINDOW_DEP
INNER JOIN AT_ORG_ORGUNIT ON AT_ORG_ORGUNIT.nodeID collate Chinese_PRC_Stroke_CI_AS = WINDOW_DEP.DepID
WHERE WINDOW_DEP.UserID = 'Admin'
可參考
http://renjin.blogspot.com/2008/02/collation-conflict.html
工作上常常需要遠端到其它的電腦上
取出四位數的流水號,格式如下:0001,0002,0003….
這時就可以用for迴圈搭配以下的function來處理即可
function padLeft(str,length){
if(str.toString().length >= length)
{
return str;
}
else
{
return padLeft("0" +str,length);
}
}
完整程式:
for(i=1;i<=4;i++)
{
document.write(padLeft(i,4) + "<BR>");
}
最後結果:
0001
0002
0003
0004
Read more...過去都是使用 insert #table方式來新增暫存的資料 現在可以用 WITH User (USERID, AGE) as Select * 可參考 http://www.dotblogs.com.tw/dc690216/archive/2010/02/02/13440.aspx
(
Select USERID, AGE
from dbo.User
)
From User
這是今天同事遇到的問題
他設計了一個新功能,有開了一個新的Table, 而裡面有一些預設資料
今天他要將這個功能更新至客戶那邊,除了提供程式外,也要提供相關的Create Table及insert 預設資料的語法
之前在寫sql語法時,需要用到序號這種東西,今天同事分享了用法。
select row_number() over (order by pk ) as NO, * from tablename
匯出EXCEL
在.cs裡加入
Response.Clear();
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");
Response.AddHeader("content-disposition", "attachment;filename=Course.xls");
Response.ContentType = "application/vnd.xls";
Read more...
<Page Language="C#" AutoEventWireup="true" CodeFile="ExportExcelCourse.aspx.cs" Inherits="_service_omega_LearningResumeNew_ExportExcelCourse" EnableViewState="false"
>
今天遇到
原本寫法(下方的textarea tag 已改全形,不然也會出現一樣的問題)
<textarea class="lstextarea" name="Q{../PK}"/>
今天剛好有寫到一個網頁另存新增的功能
遇到
document.execCommand('Saveas',true, 'abc.xml')
怎麼測試都不會出現另存網頁,於是google了一下
發現這是Microsoft為了安全性的限制
execcommand涵數匯出除了txt,htm,html,以外的格式都不接受
所以我就改成
document.execCommand('Saveas',true, 'abc.txt')
雖然可以了,因為我要匯出的格式是xml的格式,但是給.txt的話,他就會匯出一般的文字格式
tag會不見
於是在改成
document.execCommand('Saveas',true, 'abc.htm')
就可以正確的匯出了。
可參考資料
http://msdn.microsoft.com/zh-tw/library/system.windows.forms.htmldocument.execcommand(VS.80).aspx
下面是範例code
1.開新視窗另存新檔
function outExcel(atblData){
var w = window.open("about:blank", "Excel", "widht=0, height=0");
w.document.write(atblData.outerHTML);
if(w.document.execCommand('Saveas',true, 'abc.txt'))
alert("匯出成功");
else
alert("匯出失敗!");
window.close();
}
Read more...