/// <summary> /// /// </summary> /// <returns></returns> public IList <RDatabase> GetDatabases() { var list = new List <RDatabase>(); const string sql = "select * from [RDatabase] order by CatalogName"; using (var conn = BootDb.GetConnection()) { var cmd = conn.CreateCommand(); cmd.CommandText = sql; cmd.CommandType = CommandType.Text; if (conn.State != ConnectionState.Open) { conn.Open(); } using (var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { while (reader.Read()) { list.Add(PopulateRDatabase(reader)); } } } return(list); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public RDatabase GetDatabase(Guid id) { const string sql = "select * from [RDatabase] where Id=@Id"; RDatabase database = null; using (var conn = BootDb.GetConnection()) { var cmd = conn.CreateCommand(); cmd.CommandText = sql; cmd.CommandType = CommandType.Text; var pId = cmd.CreateParameter(); pId.ParameterName = "Id"; pId.Value = id; pId.DbType = DbType.Guid; cmd.Parameters.Add(pId); if (conn.State != ConnectionState.Open) { conn.Open(); } using (var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { if (reader.Read()) { database = PopulateRDatabase(reader); } } } return(database); }
// TODO:如果DataSource或UserID或Password或Profile有变化则需要刷新数据库上下文 /// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="dataSource"></param> /// <param name="description"></param> public void UpdateDatabase(Guid id, string dataSource, string description) { const string sql = "update [RDatabase] set DataSource=@DataSource,Description=@Description where Id=@Id"; using (var conn = BootDb.GetConnection()) { var cmd = conn.CreateCommand(); cmd.CommandText = sql; cmd.CommandType = CommandType.Text; cmd.Parameters.Add(CreateParameter(BootDb, "Id", id, DbType.Guid)); cmd.Parameters.Add(CreateParameter(BootDb, "DataSource", dataSource, DbType.String)); cmd.Parameters.Add(CreateParameter(BootDb, "Description", string.IsNullOrEmpty(description) ? DBNull.Value : (object)description, DbType.String)); if (conn.State != ConnectionState.Open) { conn.Open(); } cmd.ExecuteNonQuery(); } }