IHierarchyItem.GetProperties Implementation Example
public void GetProperties(ref Property[] props)
{
OleDbConnection conn = new OleDbConnection(connStr);
OleDbCommand cmd;
OleDbDataReader reader = null;
conn.Open();
try
{
cmd = conn.CreateCommand();
cmd.CommandText = "SELECT Name, Namespace, PropVal"
+ " FROM Properties"
+ " WHERE ItemID = ?";
cmd.Parameters.Add("@ItemID", OleDbType.Integer).Value = ID;
reader = cmd.ExecuteReader();
if (props == null) // get all properties
{
List<Property> l = new List<Property>();
while (reader.Read())
{
Property p = new Property();
p.Name = reader.GetString(reader.GetOrdinal("Name"));
p.Namespace = reader.GetString(reader.GetOrdinal("Namespace"));
p.Value = reader.GetString(reader.GetOrdinal("PropVal"));
l.Add(p);
}
props = l.ToArray();
}
else // get selected properties
{
while (reader.Read())
{
string propName = reader.GetString(reader.GetOrdinal("Name"));
string propNamespace = reader.GetString(reader.GetOrdinal("Namespace"));
for (int i = 0; i < props.Length; i++)
if (propName == props[i].Name && propNamespace == props[i].Namespace)
{
props[i].Value = reader.GetString(reader.GetOrdinal("PropVal"));
break;
}
}
}
}
finally
{
if (reader != null) reader.Close();
conn.Close();
}
}
|