Crystal Reports barcode generation tutorial shows how to create barcodes in Crystal Reports using C#. Use C Sharp source code sample below to generate bar code.
BarCode Generator SDK supports Crystal Report barcode generation. Full source code for this tutorial is included with evaluation version of the SDK in Examples > Crystal Reports folder.
C# (Form1.cs):
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.OleDb; using System.IO; using Bytescout.BarCode; namespace CrystalReportsWithBarcode { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void crystalReportViewer1_Load(object sender, EventArgs e) { // create (duplicate) connection for report fields // we use OleDbConnection to the sample Access database // you should create your connection yourselves string sDatabaseFile = Directory.GetCurrentDirectory() + "\products.mdb"; OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sDatabaseFile); // use SQL query you previously remembered OleDbDataAdapter dataAdapter = new OleDbDataAdapter("SELECT `Products`.`ProductName`, `Products`.`ProductDescription` FROM `Products` `Products`", aConnection); // fill dataset DataSet ds = new DataSet(); dataAdapter.Fill(ds); // add virtual field that will be used for generated barcode data ds.Tables[0].Columns.Add(new DataColumn("BarcodeImage", typeof(byte[]))); // don't forget to close the connection aConnection.Close(); // create barcode object Barcode bc = new Barcode(SymbologyType.QRCode); bc.DrawCaption = false; //bc.NarrowBarWidth = 1; //bc.WideToNarrowRatio = 2; foreach (DataRow dr in ds.Tables[0].Rows) { // set barcode object's Value property to a value of a field // you want to be used for barcode creation // we use 5 first symbols of product name bc.Value = (dr["ProductName"] as string).Substring(0, 5); // retrieve generated image bytes byte[] barcodeBytes = bc.GetImageBytesWMF(); // fill virtual field with generated image bytes dr["BarcodeImage"] = barcodeBytes; } // attach data source to virtual table CrystalReport11.Database.Tables["Table"].SetDataSource(ds); //CrystalReport11.Database.Tables["Table"].LogOnInfo.ConnectionInfo.UserID = "test"; //CrystalReport11.Database.Tables["Table"].LogOnInfo.ConnectionInfo.Password = "test"; } } }