2011-03-02 51 views
3

我有一個數據行,但我怎麼能轉換爲int?數據行轉換成int

我嘗試這樣做,但它不工作。

dsMovie = (DataSet)wsMovie.getKlantId(); 
      tabel = dsMovie.Tables["tbl_klanten"]; 
      eersteRij = tabel.Rows[0]; 
(Int32.Parse(eersteRij.ToString()) 
+1

行?也許是連續的場地? – Snowbear 2011-03-02 14:18:27

回答

2

你需要知道哪些指標你要的對象是,和鑄造的爲int,例如:

int value = (int)eersteRij[0]; 
+0

-1不會工作它的DataRow不是一個值..除非你已經定義了[Explicit cast](http://msdn.microsoft.com/en-us/library/xhbhezf4(v = vs.80).aspx)功能 – 2011-03-02 14:22:14

+0

固定它,你需要知道的數據是這當然指數。 – Femaref 2011-03-02 14:26:06

+0

和我刪除我downvote^_^ – 2011-03-02 14:27:21

2

因爲即使在層次結構的該級別你仍然有一個DataRow並且你不能將DataRow轉換爲int ..一個值可以被轉換。

而且你爲什麼要轉換整個的DataRow爲int ..通常你想在一個行單元格得到值,因此嘗試,財產以後這樣的:

int value = (int)eersteRij.Items[0]; 

其中0可以更換由小區位置(INT)或列名稱(字符串)

10

一個DataRow是一個對象;它不是一個整數。 DataRow包含一列或多列數據。您可以將索引編入DataRow以訪問這些coulmns的值。

如果表tbl_klanten包含一列,並且該列是一個整數,你可以做到以下幾點:

var myInt = (int)eersteRij[0]; 

如果列包含整數值的字符串,

var myInt = int.Parse(eersteRij[0]); 

如果列被命名爲klant_id ...

var myInt = (int)eersteRij["klant_id"]; 

如果列是包含整數的值是字符串,

var myInt = int.Parse(eersteRij["klant_id"]); 
+0

沒有tbl_klanten包含更多列。但與dsMovie =(DataSet)wsMovie.getKlantId();我只把klant_id放在tabel中。 – Steaphann 2011-03-02 14:19:53

+1

@Steaphann對不起,語言障礙正在傷害我。 klant_id在哪裏?什麼表,什麼專欄? – Will 2011-03-02 14:23:15

+0

表是tbl_klanten,列是klant_id。 – Steaphann 2011-03-02 14:54:56

5

只需使用現場方法:

int result = row.Field<int>("ColName"); 

The Field method also supports nullable types

外地方法提供支持用於訪問列作爲可爲空的 類型。如果在DataSet中的基礎值是值,返回 可空類型都會有一個null值。

並請留意:

外地方法不執行類型轉換。如果需要進行類型轉換,則應首先使用Field方法獲取列值。然後應將列值轉換爲另一種類型。

+1

歡呼聲爲最佳答案 – AnjumSKhan 2017-07-08 11:18:34

+1

同意 - 沒有看得太深入,但我相信這可能會避免提到的其他方法的拳擊稅。但要小心,如果值是DBNull,會拋出錯誤。 查看此答案的更多詳細信息:https://stackoverflow.com/questions/7104675/difference-between-getting-value-from-datarow – chadiusvt 2017-11-20 16:01:36