Provavelmente você já fez um TypeCasting, como o da linha abaixo:
DataSet ds = (DataSet) dataGridView1.DataSource;
Na forma acima, se o valor que está sendo convertido, no caso o dataGridView1.DataSource, for nulo ou não for um DataSet, será gerado um erro. Você teria que fazer um tratamento antes de efetuar o cast, usando o operador is para verificar se é realmente do tipo esperado:
if (dataGridView1.DataSource != null && dataGridView1.DataSource is DataSet)
{
DataSet ds = (DataSet) dataGridView1.DataSource;
}
Uma outra forma é fazer o cast com o operador as. Com esse operador, se o valor convertido for nulo ou não for do tipo esperado, será retornado nulo. Com isso, o código acima poderia ser escrito assim:
DataSet ds = dataGridView1 as DataSet;
if (ds != null)
...
Além disso, por não usar parenteses, pode deixar a sintaxe um pouco mais limpa, como no exemplo abaixo:
DataTable tbl = ((DataSet) dataGridView1.DataSource).Tables[0];
poderia ser representada com um conjunto de parênteses a menos usando o as :
DataTable tbl = (dataGridView1.DataSource as DataSet).Tables[0];
Nenhum comentário:
Postar um comentário