Как добавлять список внутри другой C#?

Оказывается, что он тестировал использование списков для определенного пользователя, и имело следующие данные в усердно, что я функционировало:

    listAccounts.Add(new Account { Username = "acc1", Password = "123", Roles = new String[] {"superadmin", "admin", "employee"} });
    listAccounts.Add(new Account { Username = "acc2", Password = "123", Roles = new String[] {"admin", "employee"} }); 
    listAccounts.Add(new Account { Username = "acc3", Password = "123", Roles = new String[] {"employee"} });

То, что я хочу сделать сейчас, состоит в том, чтобы получать это с таблицы базы данных, что пробовало это сделать следующей формы:

public AccountModel() {
    DataTable dt_usuarios = new DataTable();
    DataTable dt_roles = new DataTable();   
    String sql = "SELECT username,password FROM usuarios";
    conexion.conectar();
    MySqlDataAdapter datos = new MySqlDataAdapter(sql, conexion.con);        
    datos.Fill(dt_usuarios);
    List<String> roles_list = new List<String>();
    foreach (DataRow user_name in dt_usuarios.Rows)
    {           
        String sql_roles = "SELECT r.rol FROM roles r,userroles ur,usuarios u WHERE u.username='" + user_name[0].ToString() + "' AND u.id_usuarios=ur.id_usuarios AND ur.id_roles=r.id_roles";
        MySqlDataAdapter datos_roles = new MySqlDataAdapter(sql_roles, conexion.con);            
        datos_roles.Fill(dt_roles);
        foreach (DataRow roles_user in dt_roles.Rows)
        {
            roles_list.Add(roles_user[0].ToString());
        }

        listAccounts.Add(new Account { Username = user_name[0].ToString(), Password = user_name[1].ToString(), Roles = new String[] { roles_list } });
    }
    conexion.cerrar();
    //listAccounts.Add(new Account { Username = "acc1", Password = "123", Roles = new String[] {"superadmin", "admin", "employee"} });
    //listAccounts.Add(new Account { Username = "acc2", Password = "123", Roles = new String[] {"admin", "employee"} });

    //listAccounts.Add(new Account { Username = "acc3", Password = "123", Roles = new String[] {"employee"} });
}

Но когда я распределяю его в Roles = new String[] список roles_list он дает мне ошибку говоря, что не возможно конвертировать типа Generic.List<string> в string.

Мне хотелось бы знать, как посылать список string вызов roles_list в компонент списка Roles, как он это пробовал.

0
задан 18.02.2017, 01:09
0 ответов

Проблемы с указанием компилятора:

Атрибут Роли Строка вектора Строка с, нет лист строка с. Así que tenemos dos opciones:

Cambiar el tipo de dato Роли en tu clase Аккаунт , de Строка [] a Список <строка> . Puedes hacerlo, pero habría que revisar que el cambio, no genre Problem en en otras partes del código.

La segunda opción sería cambiar el типо де дато де ролей в строка [X] [11999] , Y cambiar el código en el foreach por:

2
ответ дан 03.12.2019, 16:57
  • 1
    Хорошая точка, está пробуя использовать тип информации, когда действительно está объявляя другой. В личном preferirí когда заявляет такие Roles как список string s и я заношу в список, заканчивается проблема –  18.02.2017, 03:39

Теги

Похожие вопросы