2010-02-11 134 views
-3

alt text http://www.imagechicken.com/uploads/1265914403006619100.jpg自動遞減使用C#

如何自動遞減添加允許每次分配給每個學生一個部分學生的數量?

我有代碼,但它有一個錯誤。

private void btnAssign_Click(object sender, EventArgs e) 
    { 
     ////for auto increment 
     ds = DBConn.getStudentDetails("sp_Retrieve_Student_Section"); 
     int cnt = ds.Tables[0].Rows.Count; 
     string lastrec = ds.Tables[0].Rows[cnt+1][1].ToString(); 
     int newpcode = int.Parse(lastrec) - 1; 
     txtAllowed.Text= newpcode.ToString(); 



    } 
+0

psst,不要使用sp作爲存儲過程的前綴。 – blu 2010-02-11 18:13:49

+4

聞起來像作業... – 2010-02-11 18:14:01

+1

你已經問過這個問題(http://stackoverflow.com/questions/2242053/how-to-autoincrement-in-c)和其他許多人(http://stackoverflow.com/用戶/ 252490/malou17)。 – jason 2010-02-11 18:16:02

回答

3

乍一看它看起來像這樣一行:

string lastrec = ds.Tables[0].Rows[cnt+1][1].ToString(); 

CNT + 1是從收集的範圍,以及一個例外可能是跟你說這個。您可能正在尋找cnt-1。

+0

每次我運行系統....它似乎higlighted行代碼 int newpcode = int.Parse(lastrec) - 1; – malou 2010-02-11 18:22:08

+0

*出現什麼* – 2010-02-11 18:27:25

+0

它出現在系統中突出顯示的代碼告訴我,我的代碼有錯誤 – malou 2010-02-11 18:31:51

0

我可能會寫

int newpcode = int.Parse(lastrec) - 1; 

int newpcode = 0; 
if(Int32.TryParse(lastrec, out newpcode)) 
{ 
    newpcode--; 
} 

這樣,如果它能夠成功地解析lastrec,它會遞減。 如果無法成功解析,您的newpcode將爲0,但不會拋出錯誤。

+0

當我重寫我的代碼 到您的代碼並嘗試運行...當我在組合框中分配一個部分..學生becamse 0 – malou 2010-02-11 19:00:00

+0

@malou:那是因爲你不明白你是什​​麼基礎知識試圖去做。您在blu的回答中描述的錯誤消息指出問題所在,而不是taylonr所描述的。對不起,很生硬。 – 2010-02-11 19:05:25

+0

已經改變我的錯誤 @ Cory:對於模糊的問題和答案抱歉..不管怎麼說,它是重點反正我只是給錯誤信息說第6行沒有行 – malou 2010-02-11 19:12:45