Cega86 0 Denunciar post Postado Junho 19, 2009 Bom dia estou com o seguinte problema:Tenho storeprocedure que pode retornar 1 ou mais valores(nome dos grupos de acesso de um determinado usuário),criei um metodo que joga o resultado dessa storeprocedure dentro de um DataTable.Minha dúvida é o seguinte como posso ler os nomes q estão dentro do DataTable e joga-los dentro de uma String separado-os por virgula. método que faz a consulta no banco public DataTable busca_grupos_usuario(string email) { SqlDataAdapter da = new SqlDataAdapter("carrega_grupo", ConfigurationManager.ConnectionStrings["projetos"].ConnectionString); da.SelectCommand.CommandType = CommandType.StoredProcedure; DataTable dt = new DataTable(); da.Fill(dt); return dt; } método de autenticação protected void LoginOk(String nome) { string userData = "grupos"; DataTable dt = new DataTable(); dt = dao.busca_grupos_usuario(TextBoxEmail.Text.ToLower()); for (int i = 0; i <= dt.DefaultView.Count-1; i++) { userData += dt.Rows[i].ToString().Split(','); } FormsAuthentication.Initialize(); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,nome,DateTime.Now,DateTime.Now.AddMinutes(60),true,userData,FormsAuthentication.FormsCookiePath); string hash = FormsAuthentication.Encrypt(ticket); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash); Response.Cookies.Add(cookie); } Alguem pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Junho 19, 2009 Terá que fazer um for pela quantidade de linhas do seu DataTable. A cada linha do for você adiciona o texto concatenado com a string. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Cega86 0 Denunciar post Postado Junho 19, 2009 beleza entendi,mas seu estiver lendo de um DataReder tem como eu pegar o count de um DataReder? e depois como separo por virgulas dentro de uma variável string? o código que eu estou usando só ta pegando o primeiro registro do DataReder. meu codigo ta assim: SqlConnection conexao = new SqlConnection(ConfigurationManager.ConnectionStrings["projetos"].ConnectionString); SqlCommand MySqlCommand = new SqlCommand("buscar_grupos_usuario", conexao); SqlDataReader dr = null; string grupo = null; MySqlCommand.CommandType = CommandType.StoredProcedure; MySqlCommand.Parameters.AddWithValue("@email", email); conexao.Open(); dr = MySqlCommand.ExecuteReader(CommandBehavior.SingleRow); if (dr.HasRows) { for (int i = 0; i <= dr.FieldCount; i++) { dr.Read(); grupo += dr[i].ToString(); } dr.Close(); conexao.Close(); return grupo; } else { dr.Close(); conexao.Close(); grupo = "nenhum"; return grupo; } } Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Junho 19, 2009 Acho que o DataReader não tem nenhuma propriedade que retorna a quantidade de linhas, é melhor alimentar um DataTable. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites