c#
  • arrays
  • arraylist
  • 2014-02-12 35 views 0 likes 
    0

    我尝试将字符串[]添加到列表添加阵列列出具体的关键

    代码:

    foreach (int software_id in softwarelist) 
    { 
        String sqlstring = "SELECT SoftwareName, Task_idn_Install, Task_idn_Deinstall, KZ, ParameterFeld FROM TUI_Software WHERE Sw_idn = '" + software_id + "'"; 
        SqlCommand cmd1 = new SqlCommand(sqlstring, con); 
        SqlDataReader result_sw_info = cmd1.ExecuteReader(); 
    
        if (result_sw_info.HasRows) 
        { 
         result_sw_info.Read(); 
    
         softwarename = result_sw_info[0].ToString(); 
         task_idn_install = result_sw_info[1].ToString(); 
         task_idn_deinstall = result_sw_info[2].ToString(); 
         indicator = result_sw_info[3].ToString(); 
         parameter = result_sw_info[4].ToString(); 
    
         string[] software_data = new string[] {sw_id, softwarename, task_idn_install, task_idn_deinstall, indicator, parameter }; 
    
         softwarelist_insert.Add(software_data); 
        } 
        result_sw_info.Close(); 
    } 
    

    所以在softwarelist_insert键从0开始。但我怎么可以添加软件数据与foreach中的关键software_id。因为我想用software_id标识列表中的arrys。

    +1

    当心你[SQL注入漏洞](http://stackoverflow.com/questions/332365/how-does-the-sql-injection-from-the-bobby-tables-xkcd-comic-work) –

    +0

    是啊,这只是一个例子我找到。用于原始代码pdo。 – mnlfischer

    +0

    你需要将它放在一个数组中吗?还是可以创建一个对象来保存软件信息并拥有该列表 – owen79

    回答

    2

    使用System.Collections.Generic Dictionary<string, string[]>而不是List<string[]>

    var softwarelist_insert = new Dictionary<string, string[]>(); 
    ... 
    softwarelist_insert.Add(software_id, software_data); 
    

    更好的是,使用强类型对象而不是字符串[]。

    public class SoftwareData { 
        public string SoftwareName { get; set; } 
        public string TaskIdnInstall { get; set; } 
        ... 
    } 
    

    然后

    var softwarelist_insert = new Dictionary<string, SoftwareData>(); 
    ... 
    var = new SoftwareData { 
        SoftwareName = result_sw_info[0].ToString(), 
        TaskIdnInstall = result_sw_info[1].ToString(), 
    } 
    softwarelist_insert.Add(software_id, data); 
    
    0

    您可以创建自己的类型和添加数据。 首先创建这样

    public class softwarelist_insert_class 
    { 
        public string ID {get;set;} 
        public List<string>softwarelist_insert{get;set;} 
    } 
    

    类然后你就可以创建这种类型

    List<softwarelist_insert_class> variable_name=new List<softwarelist_insert_class>(); 
    

    然后你就可以添加数据的列表变量,如:

    List<string> software_data = List<string> {sw_id, softwarename, task_idn_install, task_idn_deinstall, indicator, parameter }; 
    
    variable_name.Add({id,software_data}); 
    
    相关问题