J'ai un grand projet sur lequel je travaille et l'ouverture d'une base de données Access provoque le rétrécissement de l'ensemble du formulaire. Après plusieurs jours, j'ai réduit le problème à l'ouverture d'une base de données Access (.accdb) au sein de mon projet. (Il est possible que cela fonctionne avec d'autres bases de données, mais je ne l'ai confirmé qu'avec Access.
Pour confirmer que l'ouverture de la base de données est le problème, j'ai créé un petit projet avec un seul bouton, une boîte de dialogue Ouvrir un fichier pour ouvrir la base de données.
Voici tout le code de ce projet.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
using System.IO;
using ADOX; //Requires Reference 'Microsoft ADO Ext. 6.0 for DDL and Security' found in the reference manager under COM. Rightclick and click add reference...
using ADODB; //Requires Reference 'ADODB' found in the reference manager under assemblies. Rightclick and click add reference...
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
String databaseLocation = "";
String connectionString = "";
String q = "";
OleDbConnection conn = null;
bool DatabaseOpen = false;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void bStartLoad_Click(object sender, EventArgs e)
{
openDB.Title = "Select Database To Load";
openDB.InitialDirectory = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Application.ExecutablePath), @"Databases");
openDB.FileName = "";
openDB.Filter = "Access Database|*.accdb";
try
{
if (openDB.ShowDialog() == DialogResult.Cancel)
{
MessageBox.Show("Operation Cancelled");
}
else {
databaseLocation = openDB.FileName;
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + databaseLocation + ";Persist Security Info=False";
conn = new OleDbConnection(connectionString);
conn.Open();
DatabaseOpen = true;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
Pour gagner du temps, j'ai téléchargé le projet de test vers Mon DropBox ici
Je n'ai aucune idée de la raison pour laquelle ce redimensionnement se produit, mes professeurs ont également été déconcertés, alors peut-être que quelqu'un d'autre pourra trouver la solution.
REMARQUE : Pour résoudre ce problème, vous devez ouvrir un fichier de base de données .accdb, car le problème ne se produit que si la base de données est ouverte et que la connexion a été établie. conn.open() ; Vous pouvez également avoir besoin du pilote de https://www.microsoft.com/en-us/download/details.aspx?id=23734 si vous obtenez une erreur lorsque vous essayez d'ouvrir une base de données.