Ответы пользователя по тегу C#
  • Как организовать выбор базы данных при использовании Entity Framework?

    artzub
    @artzub
    Программист
    Ответ на вопрос в предыдущем комментарии.
    private static void InitConnectSetting() {
    	Configuration config = ConfigurationManager.
    		OpenExeConfiguration(ConfigurationUserLevel.None);
    
    	var path = DebugMode ? DebugModeDbPath() : Application.StartupPath;
    	
    	Dictionary<string, string> db = new Dictionary<string, string>() {
    		{"ec", string.Format("{0}\\db\\{1}", path, /*DebugMode ? "data.db" : */"data.db")},
    	};
    
    	var conSets = config.ConnectionStrings;
    
    	foreach (var key in db.Keys) {
    		var sName = key + "Entities";
    		var conSet = conSets.ConnectionStrings[sName];
    		if (conSet != null)
    			conSets.ConnectionStrings.Remove(conSet);
    		conSet = new ConnectionStringSettings();
    		conSet.ProviderName = "System.Data.EntityClient";
    		conSet.Name = sName;				
    		conSet.ConnectionString = 
    			string.Format("metadata=res://*/{0}Model.csdl|res://*/{0}Model.ssdl|res://*/{0}Model.msl;" + 
    				"provider=System.Data.SQLite;" +
    				"provider connection string=\"data source={1}\"", key, db[key]);
    		conSets.ConnectionStrings.Add(conSet);
    		var file = new FileInfo(db[key]);
    		if (false && !file.Exists) {
    			using (BinaryWriter binWriter =
    						new BinaryWriter(File.Open(db[key], FileMode.Create))) {
    				switch (key) {
    					case "ec":
    						binWriter.Write(Properties.Resources.kladr, 0, Properties.Resources.kladr.Length);
    						break;							
    				}
    			}
    		}
    	}
    	conSets.SectionInformation.ForceSave = true;
    	conSets.SectionInformation.RequirePermission = false;
    	config.Save(ConfigurationSaveMode.Modified);
    
    	ConfigurationManager.RefreshSection(conSets.SectionInformation.Name);
    }


    UPD: При запуске предлагать выбрать бд а затем изменять строки подключения.
    Ответ написан
    Комментировать
  • c# маппинг oracle-таблиц master-detail

    artzub
    @artzub
    Программист
    Поставьте ODAC он включает в себя EF для oracle.
    Ответ написан
    1 комментарий
  • Как привязать таблицу данных к ComboBox в C#?

    artzub
    @artzub
    Программист
    Можно использовать свойство DataSource и DisplayMember.
    Ну а дальше как и написал авторы выше используй SelectedIndexChanged.
    В DataSource передай свою таблицу в DisplayMember укажи название поля таблицы.

    namespace WindowsFormsApplication1 {
        public partial class Form1 : Form {
            public Form1() {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e) {
                dataGridView1.DataSource = bindingSource1;
                var dt = new DataTable();
                bindingSource1.DataSource = dt;
                dt.Columns.AddRange(new DataColumn[] {
                    new DataColumn("ID", typeof(long)),
                    new DataColumn("NAME", typeof(string)),
                    new DataColumn("DESC", typeof(string))
                });
                for (var i = 0; i < 3; i++) {
                    var row = dt.NewRow();                
                    row["ID"] = i;
                    row["NAME"] = string.Format("group{0}", i);
                    row["DESC"] = "Lots of symbols";
                    dt.Rows.Add(row);
                }
                dt.AcceptChanges();
                comboBox1.DataSource = bindingSource1;
                comboBox1.DisplayMember = "NAME";
            }
        }
    }


    Screenshot%202013-12-12%2002.44.00.png?w

    P.S. Если нужна более детальная помощь можешь написать мне в skype: artzubalex
    Ответ написан
    Комментировать