namespace WindowsApplication1
{
public partial class Form1 : Form
{
private IMapDocument pMapDocument = null;
private IMap pMap = null;
private IEnumLayer pEnumLayer = null;
private IFeatureLayer pFeatureLayer = null;
private IDataLayer2 pDataLayer = null;
private IDatasetName pDatasetName = null;
private IWorkspace pWorkspace = null;
private IWorkspaceName pWorkspaceName = null;
private IUID pUID = null;
private string p = "password";
public Form1()
{
InitializeComponent();
}
private void Form1_Shown(object sender, EventArgs e)
{
Application.DoEvents();
Start("", true);
}
private void Start(string sPath, bool inicializando)
{
bool saveInsideLayer = true;
int i;
string mxd;
IPropertySet pConnectionProperties = new PropertySetClass();
if (sPath == "")
{
saveInsideLayer = false;
sPath = @"C:\layer.mxd";
}
try
{
pMapDocument = new MapDocumentClass();
if (pMapDocument.get_IsPresent(sPath))
{
pMapDocument.Open(sPath, "");
}
for (i = 0; i < pMapDocument.MapCount; i++)
{
pMap = pMapDocument.get_Map(i);
pUID = new UIDClass();
pUID.Value = "{E156D7E5-22AF-11D3-9F99-00C04F6BC78E}";
pEnumLayer = pMap.get_Layers((UID)pUID, true);
pEnumLayer.Reset();
pFeatureLayer = (IFeatureLayer)pEnumLayer.Next();
while (pFeatureLayer != null)
{
if (pFeatureLayer.DataSourceType.Contains("SDE"))
{
pDataLayer = (IDataLayer2)pFeatureLayer;
if (pDataLayer.DataSourceName is IDatasetName)
{
pDatasetName = (IDatasetName)pDataLayer.DataSourceName;
pWorkspaceName = pDatasetName.WorkspaceName;
if (pFeatureLayer.FeatureClass != null) // why never true?
{
pConnectionProperties = pFeatureLayer.FeatureClass.ExtensionProperties;
}
pWorkspaceName.ConnectionProperties = pConnectionProperties;
}
}
pFeatureLayer = (IFeatureLayer)pEnumLayer.Next();
}
txtServidor.Text = pConnectionProperties.GetProperty("SERVER").ToString();
txtPorta.Text = pConnectionProperties.GetProperty("INSTANCE").ToString();
txtDatabase.Text = pConnectionProperties.GetProperty("DATABASE").ToString();
txtUsuario.Text = pConnectionProperties.GetProperty("USERNAME").ToString();
txtSenha.Text = pConnectionProperties.GetProperty("PASSWORD").ToString();
if (saveInsideLayer)
{
pMapDocument.ReplaceContents((IMxdContents)pMap);
pMapDocument.Save();
pMapDocument.Close();
}
}
}
catch (Exception ex)
{
throw new Exception("Unable to run the code", ex);
}
}
}
}
if (pFeatureLayer.FeatureClass != null)
{
MessageBox.Show(pFeatureLayer.Name + " ok");
}
else MessageBox.Show(pFeatureLayer.Name + " fail");
pDataLayer = (IDataLayer2)pFeatureLayer;
if (pDataLayer.DataSourceName is IDatasetName)
{
pDatasetName = (IDatasetName)pDataLayer.DataSourceName;
pWorkspaceName = pDatasetName.WorkspaceName;
pConnectionProperties = pWorkspaceName.ConnectionProperties;
}
pMapDocument.ReplaceContents((IMxdContents)pMap); pMapDocument.Save(true, false); //are these arguments ok? pMapDocument.Close();