Une facon tout simple d'imprimer ton Datagrid :
Tu ajoutes un composant PrintDocument a ta Form.
Ensuite tu t'inscris a l'evenement PrintPage de ce PrintDocument
Dans la méthode associée a l'evement PrintPage tu mets :
PaintEventArgs myPaintArgs = new PaintEventArgs(e.Graphics, new Rectangle(new Point(0, 0), this.Size));
this.InvokePaint(dataGrid1, myPaintArgs);
Et ensuite, dans l'evenement associé au click du bouton d'impression, tu mets :
tonPrintDocument.Print();
Pour imprimer des données directement depuis la base de données, tu peux essayer de t'inspirer de
ce code (je ne sais pas ce qu'il vaut)
Mx