Will this condition ever come true?
if (cmbmoduleid.SelectedIndex > -1 && cmbmoduleid.Text == "")
{.....}
I think the problem is here.
Please make sure the below code will not throw type cast exception
MaskId = Convert.ToInt32(cmbmoduleid.SelectedText);
NB: Why should we use dataset if it contains only one datatable. Use datatable instead. That will boost performance.
Regards
Sebastian