2015-12-30 22 views
-2

沒有排在位置0誤差下面的代碼,我得到錯誤的有DataTable中

有一個在位置0

protected void btnUpload_Click(object sender, EventArgs e) 
{ 

    DataTable dtExcel = new DataTable(); 
    dtExcel.Clear(); 

    if (Convert.ToInt32(dtExcel.Rows[0]["Mkey"]) > 0) // here is the error 
    { 
     Hid_Mode.Value = "M"; 
     hid_mkey.Value = dtExcel.Rows[0]["Mkey"].ToString(); 
    } 
    else 
    { 
     Hid_Mode.Value = "A"; 
     hid_mkey.Value = "0"; 
    } 
+1

你在調用'dtExcel.Clear()'後還有什麼期望? – Shaharyar

+0

這是因爲你已經在'dtExcel.Clear();清除數據表'# –

+0

@Shaharyar:我想檢查表中是否有數據 – BNN

回答

1

更改你的代碼像這樣沒有行:

DataTable dtExcel = new DataTable(); 
dtExcel.Clear(); 

if (dtExcel.Rows.Count > 0) //Here's the change 
{ 
    Hid_Mode.Value = "M"; 
    hid_mkey.Value = dtExcel.Rows[0]["Mkey"].ToString(); 
} 
else 
{ 
    Hid_Mode.Value = "A"; 
    hid_mkey.Value = "0"; 
} 
+0

但是當它在表中有一些記錄時,它應該進入'IF'狀態,並且不會執行 – BNN

+0

@coder這就是代碼的作用。如果它沒有去,如果,當然你的數據表是空的。 –

+0

它怎麼是空的,有數據表中的記錄 – BNN