RECUPERAR DADOS DE ARRAYLIST DUAS DIMENSOES.
Boa tarde.
Criei um ArrayList com (ID, Nome) e passo ele ao DAL para gravar no banco. O problema é que não consigo pegar cada informação separadamente para passar ao parâmetro do SQL. O ArrayList usou um Structure para ser montado assim:
No inÃcio do Formulário
Na Classe DAL
Na linha vermelha dá erro dizendo que conversão não é permitida.
Tentei assim e deu erro também.
myStruturaPermissao = myPerfilPermissao[i];
Tenho que passar os dois valores separadamente ao método que checa se o registro já existe e depois para incluir nos parâmetros de gravar.
Alguém pode ajudar?
Criei um ArrayList com (ID, Nome) e passo ele ao DAL para gravar no banco. O problema é que não consigo pegar cada informação separadamente para passar ao parâmetro do SQL. O ArrayList usou um Structure para ser montado assim:
No inÃcio do Formulário
public struct struturaPermissoes
{
public int IDPerfil;
public string NomePermissao;
}
Na Classe DAL
public bool Incluir(ArrayList myPerfilPermissao)
{
bool bPermissaoExiste = false;
for (int i = 0; i < myPerfilPermissao.Count; i++)
{
struturaPermissoes myStruturaPermissao = new struturaPermissoes();
[txt-color=#e80000]myStruturaPermissao = ((struturaPermissoes)myPerfilPermissao[i]);[/txt-color]
bPermissaoExiste = JaExiste(myStruturaPermissao.IDPerfil, myStruturaPermissao.NomePermissao.ToLower());
if (bPermissaoExiste == false)
{
Dados.AbrirConexao();
// Não encontrou então inclui o novo registro
string sql = [Ô]INSERT INTO PERFIL_PERMISSAO (IDPERFIL,PERMISSAO) VALUES (@IDPERFIL,@PERMISSAO); [Ô]
+ [Ô]SELECT CAST(scope_identity() AS int)[Ô];
SqlCommand cmd = new SqlCommand(sql, Dados.cn);
cmd.Parameters.Add([Ô]@IDPERFIL[Ô], SqlDbType.Int);
cmd.Parameters[[Ô]@IDPERFIL[Ô]].Value = myStruturaPermissao.IDPerfil;
cmd.Parameters.Add([Ô]@PERMISSAO[Ô], SqlDbType.NVarChar);
cmd.Parameters[[Ô]@PERMISSAO[Ô]].Value = myStruturaPermissao.NomePermissao.ToLower();
cmd.ExecuteScalar();
}
}
}
Na linha vermelha dá erro dizendo que conversão não é permitida.
Tentei assim e deu erro também.
myStruturaPermissao = myPerfilPermissao[i];
Tenho que passar os dois valores separadamente ao método que checa se o registro já existe e depois para incluir nos parâmetros de gravar.
Alguém pode ajudar?
Não é possivel converter arraylist para struct. Na verdade, você tem que percorrer o arraylist e preencher sua estrutura manualmente.
Porque usar ArrayList e Structure? Porque não um List<T> e uma classe?
Bem fiz com ArrayList porque a maioria dos exemplos na Web usam ele e como havia dois tipos de dados Int e String, achei que seria o correto, mas com o uso da entidade, isso não é problema.
Fiz a mudança como sugerido pelo Kerplunk e funcionou perfeitamente.
Obrigado.
Fiz a mudança como sugerido pelo Kerplunk e funcionou perfeitamente.
Obrigado.
Tópico encerrado , respostas não são mais permitidas