2012-08-23 38 views
0

我有一個模型:INT存儲VAR類型以及在c#

public class KPIResults 
{ 
    public virtual string Title { get; set; } 
    public virtual int Total { get; set; } 
    public virtual int Week6 { get; set; } 
    public virtual int Week5 { get; set; } 
    public virtual int Week4 { get; set; } 
    public virtual int Week3 { get; set; } 
    public virtual int Week2 { get; set; } 
    public virtual int Week1 { get; set; } 

    public virtual string stringWeek6 { get; set; } 
    public virtual string stringWeek5 { get; set; } 
    public virtual string stringWeek4 { get; set; } 
    public virtual string stringWeek3 { get; set; } 
    public virtual string stringWeek2 { get; set; } 
    public virtual string stringWeek1 { get; set; } 
} 

在我的報告庫中我有:

int strfound = 0; 
string str = "Number"; 
foreach (DataRow dr in dt.Rows) 
{ 
    string title = dr["Title"].ToString(); 
    int total = Convert.ToInt32(dr["Total"]); 
    if (dr["Week6"].contains("Number") //synntacs not right? 
     var week6 = dr["strWeek6"] 
    end 

    or do this: 
    strfound = str.IndexOf(dr); //syntacs not right? 
    if (strfound == 0) 
    { 
     var week6 = dr["strWeek6"] 
    } 
    var week6 = Convert.ToInt32(dr["Week6"]); 
    var week5 = Convert.ToInt32(dr["Week5"]); 
    var week4 = Convert.ToInt32(dr["Week4"]); 
    var week3 = Convert.ToInt32(dr["Week3"]); 
    var week2 = Convert.ToInt32(dr["Week2"]); 
    var week1 = Convert.ToInt32(dr["Week1"]); 

    results.Add(new KPIResults() {Title = title, Total = total, Week6 = week6, Week5 = week5, Week4 = week4, Week3 = week3, Week2 = week2, Week1 = week1}); 

    } 
    return results; 

也許我應該嘗試做一個字符串搜索,但我的代碼在這是不正確的。我尋找處理字符串的方法,但不清楚。

感謝

+2

你是什麼意思的「它會產生字符串」?目前你的問題*非常*不清楚。從哪裏獲取數據並不明確,或者數據真的是什麼...... –

+1

您不能在int中存儲字符串。你想達到什麼目的?也許你應該修復你的數據?或者創建字符串類型的模型屬性。 –

+2

當這種情況發生時,您是否檢查過'dr [「Weekn」]的值?看起來很奇怪,轉換爲int將爲您返回字符串! ! – V4Vendetta

回答

0

什麼你正在嘗試做的,回答你的問題,All I want to know is it possible to cast the var type to be stored as an int or the other way around?號有些不清楚

我認爲最好的辦法是使用string那麼它將能容納文本和數字。你可以做一個正則表達式測試來檢查它是否包含文本,如果沒有,將它存儲的數字轉換爲int,以供你使用。

或者只是做一個更好的模型,將包括所有你需要的部分。

您也可以使用.GetType()返回var的類型。

更新

好了,它看起來像你正試圖檢測是否dr["Week6"]包含stringint。去這一個方法是:

int number; 
if(int.TryParse(dr["Week6"], out number)) 
    var week6 = dr["strWeek6"] 

如果dr["Week6"]可以轉換成一個int,那麼if聲明truenumber將包含dr["Week6"]值。

這裏是int.TryParse元數據:

總結: 一個數字的字符串表示形式轉換爲它的32位帶符號整數 當量。返回值指示轉換是否成功。

參數:s: 包含要轉換的數字的字符串。

結果: 此方法返回時,包含32位帶符號整數的值等效 包含在S,如果轉換成功,或零,如果 轉換失敗的數目。如果s參數爲空,不是 的正確格式,或者表示小於System.Int32.MinValue 或大於System.Int32.MaxValue的數字,轉換將失敗。此參數未經初始化傳遞。

返回: 如果s已成功轉換,則爲true;否則,是錯誤的。

+0

我編輯我的OP ..感謝 –

+0

不用擔心修復它..謝謝! –