示例#1
0
        private void provider_Changed(object sender, EventArgs e)
        {
            object item = providerComboBox.SelectedItem;

            if (item != null)
            {
                SQLiteOptions.SetProviderName(item.ToString());
            }
        }
        protected override void OnLoadOptions(string key, Stream stream)
        {
            if (SQLiteOptions.HaveKey(key))
            {
                string value;

                if (SQLiteOptions.ReadValue(stream, out value) &&
                    SQLiteOptions.IsValidValue(key, value))
                {
                    SQLiteOptions.SetValue(key, value);
                }

                return;
            }

            base.OnLoadOptions(key, stream);
        }
        public SQLitePackage()
        {
            IEnumerable <string> keys = SQLiteOptions.GetKeys(true);

            if (keys != null)
            {
                foreach (string key in keys)
                {
                    if (key == null)
                    {
                        continue;
                    }

                    AddOptionKey(key);
                }
            }
        }
        protected override void OnSaveOptions(string key, Stream stream)
        {
            if (SQLiteOptions.HaveKey(key))
            {
                string value;

                if (SQLiteOptions.GetValue(key, out value) &&
                    SQLiteOptions.IsValidValue(key, value) &&
                    !SQLiteOptions.IsDefaultValue(key, value))
                {
                    SQLiteOptions.WriteValue(stream, value);
                }

                return;
            }

            base.OnSaveOptions(key, stream);
        }
示例#5
0
        public override void LoadProperties()
        {
            SQLiteOptions.SelectProviderName(providerComboBox);

            fileTextBox.Text     = String.Empty;
            passwordTextBox.Text = String.Empty;

            if (ConnectionProperties == null)
            {
                return;
            }

            if (ConnectionProperties.Contains("data source"))
            {
                fileTextBox.Text = ConnectionProperties["data source"] as string;
            }

            if (ConnectionProperties.Contains("password"))
            {
                passwordTextBox.Text = ConnectionProperties["password"] as string;
            }
        }
示例#6
0
        protected override void FillTreeWithData(Selector selector, ITypeDescriptorContext context, IServiceProvider provider)
        {
            object       manager    = Activator.CreateInstance(_managerType, new object[] { provider });
            DbConnection connection = (DbConnection)context.Instance;

            ObjectSelectorEditor.SelectorNode node;

            _selector = selector;

            _selector.Clear();

            if (manager != null)
            {
                int    items = (int)_managerType.InvokeMember("GetConnectionCount", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, null);
                string dataProvider;
                string connectionString;
                string connectionName;

                for (int n = 0; n < items; n++)
                {
                    connectionString = (string)_managerType.InvokeMember("GetConnectionString", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { n });
                    connectionName   = (string)_managerType.InvokeMember("GetConnectionName", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { n });
                    dataProvider     = (string)_managerType.InvokeMember("GetProvider", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { n });
                    if (String.Compare(dataProvider, SQLiteOptions.GetProviderName(), StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        node = selector.AddNode(connectionName, connectionString, null);

                        if (String.Compare(connectionString, connection.ConnectionString, StringComparison.OrdinalIgnoreCase) == 0)
                        {
                            selector.SelectedNode = node;
                        }
                    }
                }
                selector.AddNode("<New Connection...>", this, null);
            }
        }
示例#7
0
 public SQLiteDataConnectionSupport()
     : base(SQLiteOptions.GetProviderName())
 {
 }
示例#8
0
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            if (provider == null || context == null)
            {
                return(value);
            }
            if (context.Instance == null)
            {
                return(value);
            }

            try
            {
                context.OnComponentChanging();
                object newConnection    = base.EditValue(context, provider, value);
                string connectionString = newConnection as string;
                int    index            = -1;

                if (connectionString == null && newConnection != null)
                {
                    if (_managerType != null)
                    {
                        object manager = Activator.CreateInstance(_managerType, new object[] { provider });
                        if (manager != null)
                        {
                            index = (int)_managerType.InvokeMember("AddNewConnection", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { SQLiteOptions.GetProviderName() });
                            if (index > -1 && _selector != null)
                            {
                                connectionString       = (string)_managerType.InvokeMember("GetConnectionString", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { index });
                                _selector.SelectedNode = _selector.AddNode((string)_managerType.InvokeMember("GetConnectionName", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { index }), connectionString, null);
                            }
                        }
                    }
                }

                if (String.IsNullOrEmpty(connectionString) == false)
                {
                    value = connectionString;
                }
                context.OnComponentChanged();
            }
            catch
            {
            }
            return(value);
        }
示例#9
0
 public SQLiteConnectionUIControl()
 {
     InitializeComponent();
     SQLiteOptions.AddProviderNames(providerComboBox.Items);
 }
示例#10
0
 public SQLiteConnectionProperties(string connectionString)
     : base(SQLiteOptions.GetProviderName(), connectionString)
 {
 }
        /// <summary>
        /// Creates the necessary components associated with this data adapter instance
        /// </summary>
        /// <param name="host">The designer host</param>
        /// <returns>The components created by this toolbox item</returns>
        protected override IComponent[] CreateComponentsCore(IDesignerHost host)
        {
            List <IComponent> list = new List <IComponent>();
            DbProviderFactory fact;

            if (SQLiteOptions.GetProviderFactory(SQLiteOptions.GetProviderName(), true, out fact))
            {
                DbDataAdapter dataAdapter = fact.CreateDataAdapter();
                IContainer    container   = host.Container;

                using (DbCommand adapterCommand = fact.CreateCommand())
                {
                    ICloneable adapter = (ICloneable)adapterCommand;

                    adapterCommand.DesignTimeVisible = false;
                    dataAdapter.SelectCommand        = (DbCommand)adapter.Clone();
                    container.Add(dataAdapter.SelectCommand, GenerateName(container, "SelectCommand"));

                    dataAdapter.InsertCommand = (DbCommand)adapter.Clone();
                    container.Add(dataAdapter.InsertCommand, GenerateName(container, "InsertCommand"));

                    dataAdapter.UpdateCommand = (DbCommand)adapter.Clone();
                    container.Add(dataAdapter.UpdateCommand, GenerateName(container, "UpdateCommand"));

                    dataAdapter.DeleteCommand = (DbCommand)adapter.Clone();
                    container.Add(dataAdapter.DeleteCommand, GenerateName(container, "DeleteCommand"));
                }

                ITypeResolutionService typeResService = (ITypeResolutionService)host.GetService(typeof(ITypeResolutionService));
                if (typeResService != null)
                {
                    typeResService.ReferenceAssembly(dataAdapter.GetType().Assembly.GetName());
                }

                container.Add(dataAdapter);

                list.Add(dataAdapter);

                // Show the connection wizard if we have a type for it
                if (_wizard != null)
                {
                    using (Form wizard = (Form)Activator.CreateInstance(_wizard, new object[] { host, dataAdapter }))
                    {
                        wizard.ShowDialog();
                    }
                }

                if (dataAdapter.SelectCommand != null)
                {
                    list.Add(dataAdapter.SelectCommand);
                }
                if (dataAdapter.InsertCommand != null)
                {
                    list.Add(dataAdapter.InsertCommand);
                }
                if (dataAdapter.DeleteCommand != null)
                {
                    list.Add(dataAdapter.DeleteCommand);
                }
                if (dataAdapter.UpdateCommand != null)
                {
                    list.Add(dataAdapter.UpdateCommand);
                }
            }

            return(list.ToArray());
        }