この構造体を使用して、DataTable から取得したいくつかの行をリストに追加しようとしています。
protected struct roleProperties
{
public string roleName { get; set; }
public string[] functionTitle { get; set; }
}
ご覧のとおり、メソッド文字列内にさらに文字列が必要Title
です
私はこのようにしようとしています:
public void getRoleFuncs(int roleId)
{
List<roleProperties> roles = new List<roleProperties>();
int i = 1;
SqlParameter ro_id = new SqlParameter("@ro_id", roleId);
string q = "SELECT ro_name, fu_title FROM roles INNER JOIN rolefunctions ON roles.ro_id = rolefunctions.fk_role_id INNER JOIN functions ON rolefunctions.fk_func_id = functions.fu_id WHERE ro_id = @ro_id";
SqlDataReader r = gm.returnReader(q, ro_id);
while (r.Read())
{
roleProperties item = new roleProperties();
item.roleName = r["ro_name"].ToString();
foreach (IDataRecord str in r)
{
item.functionTitle[i] = r["fu_title"].ToString();
i++;
}
roles.Add(item);
}
}
しかし、次の行で null 参照を取得します。
item.functionTitle[i] = r["fu_title"].ToString();
誰かが私が間違っていることを見ることができますか?