2011-11-15 50 views
3

我是新來的MS Access 2007,我正在創建一個應用程序使用Visual Studio 2010 C#。我想知道我應該在我創建的每個參數中使用哪種數據類型。什麼是正確的數據類型用於一個號碼

例如:

command.Parameters.Add(new OleDbParameter("?company_name", OleDbType.VarChar)); 

這是個字符(糾正我,如果我錯了)的數據類型。

我的問題是,什麼是數字數據類型(例如:郵政編碼和電話號碼(221-0019))使用的是正確使用數字數據類型?

P.S:我已經有我的表在MS Access

+0

您是否已經制作了桌子? – BoltClock

+0

@BoltClock:我已經在MS Access中創建了一個表格,我使用的數據類型是NUMBER。 – sean

+0

和字段大小? – Reniuz

回答

1

使用任何數據類型適合您的數據。

E.g.如果需要列存儲0到100之間的整數,請使用DataTypeNumberFieldSizeByte。對於0到10,000之間的整數,請使用Integer。對於-1,000,000,000至1,000,000,000之間的分數,使用Single。請參閱DataTypeFieldSize的MSAcess幫助以瞭解適用於您的數據的內容。

然後,從C#操作數據庫時,請使用等效的OleDbType。請參閱OldDbType的幫助以確定哪一個與MSAccess列中的數據類型等效。

E.g. (根據以上示例)OleDbType.UnsignedTinyIntOleDbType.SmallInt,OleDbType.Single

+0

+1。這就是我在詢問場地大小時的想法:) – Reniuz

1

將數據值存儲爲數字或字符時有幾件事需要考慮。你應該知道以下問題。

  1. 如果有人決定在郵編或電話號碼中輸入非數字字符,您會做什麼?處理上面的例子,您需要刪除像(222)221-0019這樣的電話號碼的所有非數字字符。更好的解決方案是在數據輸入到數據庫之前清理數據,但將其存儲爲字符仍然可以享受其優點。
  2. 排序。請注意,訂購字符與數字可能會產生一些不良結果。請注意,數字1,11和2按字母順序與數字順序不同。排序後的alpha,正確的順序是1,11,2.在數字上,它們被排序爲1,2,11。這是決定將數據值存儲爲數字或字符字段時的考慮因素。
  3. 空間。將它們存儲爲整數需要4個字節。如果將它們存儲爲字符,則5位數的zip需要5個字節,如果使用unicode,則需要10個字節。你可能不會保存一個天文數量的空間,所有事情都考慮在內,所以1和2應該是更大的考慮因素。

數據庫是關於存儲數據。你應該真的考慮存儲值的意圖。通常情況下,如果數字是實際的數字值,那麼您只需要將數字存儲爲數字,這樣您就可以進行數字操作。例如,金錢,年齡,僱用的年數。

至於通常都是數字的標識符,例如社會安全號碼,街道號碼,電話號碼,這些確實沒有數字。他們是隻能使用數字的「字符」值。你想將它們作爲字符存儲的原因是,當它們從數據庫中引入它們時,如果你期望主要做基於字符的操作,那麼你必須不斷地將它們從數字轉換爲字符值。

權衡利弊。祝你好運!

相關問題