J'essaie de renseigner programmatiquement DataGridView sur mon formulaire Windows avec DB Data, mais je fais évidemment quelque chose de mal. Quand j'essaie de l'exécuter, il met en évidence Dadavaoci et dit: exception Systeme non gérée.InvalidoperationException: «La propriété SelectCommand n'a pas été initialisée avant d'appeler« Remplir ». P> P>
4 Réponses :
Essayez de modifier cette section de code en quelque chose comme ceci:
MyGrid.DataSource = ds;
Ensuite, vous pouvez attacher votre ensemble de données à votre grille.
Quelque chose comme:
XXX
Plus d'informations ici: https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqldataadapter?view=netframework-4.8
p >
Cela devrait être corrigé car il n'y a rien dans la commande sql
using (connection = new SqlConnection(connectionString))
{
using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Davaoci",connection ))
{
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(adapter);
DataTable table = new DataTable
{
Locale = CultureInfo.InvariantCulture
};
dataAdapter.Fill(table);
YourDataGridView.DataSource = table;
}
}
Par exemple, veuillez parcourir ceci Comment: lier des données au contrôle DataGridView Windows Forms
Vous utilisez le mauvais sqladapter.
au sommet Vous créez un adaptateur nommé mais que vous n'acceptez aucun commandement et aucune connexion. P> < P> En bas, vous créez un nouvel adaptateur nommé Vous devez utiliser l'adaptateur que vous avez créé qui contient une connexion COMMANTEXT et une connexion comme cette p> Je ne sais pas exactement ce que vous essayez de faire, mais je pense que l'initialisation des deux adaptateurs sur le dessus de votre code n'a pas de sens (à moins pour moi). Je ne stockerais pas la connexion ni l'adaptateur dans une classeVariable, mais créer de nouveaux lorsque vous en avez besoin. (Si vous utilisez le mot-clé à l'aide de l'utilisation de l'utilisation de l'utilisation de l'utilisation de l'utilisation de l'utilisation. Ainsi, utilisez et créez de nouvelles instances dans lesquelles vous en avez besoin ou en faites une classevariable et ne pas utiliser à l'aide) < / p> p> dadavoci code>: p> Adaptateur code> (avec connexion et commandement). Mais alors vous utilisez à nouveau l'adaptateur du haut qui n'a toujours pas de commandementText et aucune connexion. P>
Merci mon pote, tu as beaucoup aidé. La solution était si simple mais je ne pouvais pas la voir à l'époque.
Voici ce que j'ai fait pour résoudre mon problème:
namespace UDDKT
{
public partial class Form2 : Form
{
DataSet ds = new DataSet();
SqlDataAdapter DaDavaoci = new SqlDataAdapter();
SqlDataAdapter DaAkcije = new SqlDataAdapter();
SqlConnection cs = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\UDDKT.mdf;Integrated Security=True");
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
SqlCommand SlctDavaoci = new SqlCommand("SELECT * FROM Davaoci", cs);
DaDavaoci.SelectCommand = SlctDavaoci;
DaDavaoci.Fill(ds, "TblDavaoci");
SqlCommand SlctAkcije = new SqlCommand("SELECT * FROM AkcijaDDK", cs);
DaAkcije.SelectCommand = SlctAkcije;
DaAkcije.Fill(ds, "TblAkcije");
DgDavaoci.DataSource = ds.Tables["TblDavaoci"];
DgAkcije.DataSource = ds.Tables["TblAkcije"];
}
}
}