Jak dodać kod kreskowy w Crystal Reports za pomocą C#
Crystal Reports is a powerful reporting tool that allows developers to create feature-rich reports for their applications. When it comes to including barcodes in Crystal Reports using C#, it adds a new dimension to data representation, making it easier to manage and track information. In this article, we'll explore the steps to integrate barcodes into Crystal Reports using C#.
How to Add a Barcode in Crystal Reports using C
- Install the Barcode Library.
- Generate a Barcode image and save it as an image in a database table.
- Design the layout for the Crystal Report.
- Establish a connection to the database and select the necessary table.
- Include a Barcode Image field in the Crystal Report layout.
- Build and run the project.
Choose a Barcode Library
Before diving into the implementation, it's essential to select a barcode library that supports Crystal Reports and C#. One popular choice is the IronBarcode for .NET.
Czym jest IronBarcode
IronBarcode is a versatile .NET library that simplifies barcode generation and reading. With IronBarcode, you can effortlessly create various barcodes, including Code 128 and QR codes, by specifying the value to encode. It also supports resizing and customization. On the reading side, IronBarcode can extract barcode data from images or PDFs, making it ideal for inventory management and document tracking. Its user-friendly API ensures quick integration into your projects, and cross-platform support allows seamless development across different .NET versions. Whether you're a seasoned developer or a beginner, IronBarcode empowers you to work with barcodes efficiently.
Create a new Project
Open Visual Studio for creating an ASP.NET Crystal Reports Web Site. I am using Visual Studio 2022. You may use any, but make sure Crystal reports for Visual Studio for that particular version is installed.

Select Project Name, Location & Target Framework. Click on the Create Button. A new Project will be created as shown below.

Before we begin, we need to have a Database. Let's create a new database and a sample table.
Create a new Database
The following script will create a new database.
CREATE DATABASE ProductDB;
USE [ProductDB]
GO
/****** Object: Table [dbo].[Products] Script Date: 3/10/2024 2:57:18 PM******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Products](
[Product_ID] [int] NULL,
[Product_Name] [varchar](100) NULL,
[Product_Price] [decimal](18, 0) NULL,
[Product_Barcode] [image] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
Let's insert data into this table. We'll create a barcode and save it in the Product table. Therefore, we need to insert data using C# code and install the IronBarcode Library in our project to use its features to create barcodes.
Install IronBarcode Library
To install the IronBarcode library using the NuGet Package Manager Console, follow these steps:
Open the NuGet Package Manager Console. You can find it by going to View -> Other Windows -> Package Manager Console.

In the Package Manager Console, use the following command to install the IronBarcode library:
Install-Package BarCode
Press Enter to execute the command.
Alternatively, you can install IronBarcode library using the Manage NuGet Packages for Solution:

Wait for the NuGet Package Manager to download and install the IronBarcode library and its dependencies. Once the installation is complete, you'll see a confirmation message in the Package Manager Console.
Now, the IronBarcode library is installed in your project, and you can start using its features for barcode generation and reading.
Generate barcode images and store them in the Database
We'll generate barcode images and store them in the database using ADO.NET. The following code demonstrates the example of generating a barcode in C#.
using System;
using System.Data.SqlClient;
using IronBarCode;
class Program
{
static void Main(string[] args)
{
// Create a barcode from a string value using Code128 format.
var myBarcode = BarcodeWriter.CreateBarcode("77446252", BarcodeWriterEncoding.Code128);
// Add the barcode value text below the barcode image.
myBarcode.AddBarcodeValueTextBelowBarcode();
// Resize the barcode image.
myBarcode.ResizeTo(600, 300);
// SQL connection to the SQL Server database.
using (SqlConnection cn = new SqlConnection("Data Source=localhost\\SQLEXPRESS;Initial Catalog=ProductDB;User ID=sa;Password=123456;Integrated Security=SSPI;"))
{
// SQL command to insert the barcode into the Products table.
SqlCommand cmd = new SqlCommand($"INSERT INTO dbo.Products VALUES (77446252, 'Pine Apple Small', '100', @Barcode)", cn);
// Add parameter for the barcode binary data.
cmd.Parameters.AddWithValue("@Barcode", myBarcode.BinaryStream);
// Open the connection, execute the query, close the connection.
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
}
}
using System;
using System.Data.SqlClient;
using IronBarCode;
class Program
{
static void Main(string[] args)
{
// Create a barcode from a string value using Code128 format.
var myBarcode = BarcodeWriter.CreateBarcode("77446252", BarcodeWriterEncoding.Code128);
// Add the barcode value text below the barcode image.
myBarcode.AddBarcodeValueTextBelowBarcode();
// Resize the barcode image.
myBarcode.ResizeTo(600, 300);
// SQL connection to the SQL Server database.
using (SqlConnection cn = new SqlConnection("Data Source=localhost\\SQLEXPRESS;Initial Catalog=ProductDB;User ID=sa;Password=123456;Integrated Security=SSPI;"))
{
// SQL command to insert the barcode into the Products table.
SqlCommand cmd = new SqlCommand($"INSERT INTO dbo.Products VALUES (77446252, 'Pine Apple Small', '100', @Barcode)", cn);
// Add parameter for the barcode binary data.
cmd.Parameters.AddWithValue("@Barcode", myBarcode.BinaryStream);
// Open the connection, execute the query, close the connection.
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
}
}
Imports System
Imports System.Data.SqlClient
Imports IronBarCode
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a barcode from a string value using Code128 format.
Dim myBarcode = BarcodeWriter.CreateBarcode("77446252", BarcodeWriterEncoding.Code128)
' Add the barcode value text below the barcode image.
myBarcode.AddBarcodeValueTextBelowBarcode()
' Resize the barcode image.
myBarcode.ResizeTo(600, 300)
' SQL connection to the SQL Server database.
Using cn As New SqlConnection("Data Source=localhost\SQLEXPRESS;Initial Catalog=ProductDB;User ID=sa;Password=123456;Integrated Security=SSPI;")
' SQL command to insert the barcode into the Products table.
Dim cmd As New SqlCommand($"INSERT INTO dbo.Products VALUES (77446252, 'Pine Apple Small', '100', @Barcode)", cn)
' Add parameter for the barcode binary data.
cmd.Parameters.AddWithValue("@Barcode", myBarcode.BinaryStream)
' Open the connection, execute the query, close the connection.
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()
End Using
End Sub
End Class
Wyjaśnienie kodu
1. Barcode Generation
-
var myBarcode = BarcodeWriter.CreateBarcode("77446252", BarcodeWriterEncoding.Code128);- This line creates a barcode using the
BarcodeWriterclass'sCreateBarcode()method. The barcode is generated from the data represented by the string "77446252" using the Code 128 encoding format. ThemyBarcodevariable now holds the generated barcode.
- This line creates a barcode using the
-
AddBarcodeValueTextBelowBarcode()- This function adds a description text of the barcode value below the barcode.
-
ResizeTo(600, 300)- Adjusts the height and width of the barcode image to the provided dimensions.
- You can use the
SaveAs()method to save barcode images in the file system.
The following barcode will be generated from the above code:

2. Database Connection Setup
-
SqlConnection cn = new SqlConnection("Data Source=localhost\\SQLEXPRESS;Initial Catalog=ProductDB;User ID=sa;Password=123456;Integrated Security=SSPI;");- Establishes a connection to a SQL Server database. The connection string specifies the server (
localhost\\SQLEXPRESS), the initial catalog (database name:ProductDB), and the authentication credentials (user ID saandpassword 123456).
- Establishes a connection to a SQL Server database. The connection string specifies the server (
3. SQL Command Creation
-
SqlCommand cmd = new SqlCommand($"INSERT INTO dbo.Products VALUES (77446252, 'Pine Apple Small', '100', '{myBarcode.BinaryStream}' )", cn);- Creates a new
SqlCommandobject. This command represents an SQL query to insert data into the Products table. - The query inserts values into the table columns:
77446252,'Pine Apple Small','100', and the binary stream of the generated barcode (myBarcode.BinaryStream).
- Creates a new
4. Database Interaction
- cn.Open();: The connection to the database is opened.
- cmd.ExecuteNonQuery();: The SQL query is executed, inserting the specified values into the Products table.
- cn.Close();: Closes the database connection to release resources.
Design Your Crystal Reports Barcode generator
Now, design the report layout, add database connections, and arrange the necessary fields. If you're new to this, follow the following steps.
-
Open Field Explorer => Database Field => Database Expert.

-
Expand Create a new Connection => OLE DB(ADO) => Make New Connection.

-
Select Microsoft OLE DB Data Source for SQL Server and click Next.

-
Provide the Server Name, Login Credential, and Database Name as shown below.

- Press the Next button, a new window will appear, and then click Finish.
-
Select the table you want to add. In this case, select the Products table.

- Click on the OK Button.
We have set up a Database Connection. Now, let's set up the Report layout.
Now, I have added a Text Box with the text "Barcode in Crystal report C#". I added a text box, and drag & drop the Product ID, Product Name, Product Price Field, and Product Barcode from the database fields and placed them inside the box as shown below.

See the Crystal Report Preview in Crystal Report Viewer.

Build and run the project. Oto wynik:

I have not downloaded the sample dataset package, ensuring I had the correct data file, and proceeded to create a Crystal Report in C# for comprehensive data visualization.
In this way, we can create a barcode in the Crystal Reports Application without downloading the Barcode Font. Similarly, we can also add a QR Code as per your requirement.
Wnioski
In conclusion, integrating barcodes into Crystal Reports using C# is a powerful way to enhance data representation and management. Choosing a reliable barcode library like IronBarcode streamlines the process, offering versatility and ease of use. IronBarcode, with its support for various barcode types, resizing, and customization features, proves to be a valuable asset in barcode generation and reading tasks. The step-by-step guide provided here ensures a seamless implementation process, from selecting the library to designing the Crystal Report layout.
Moreover, IronBarcode offers developers the opportunity to unlock additional functionalities and support to enhance their barcode integration experience. This flexibility makes IronBarcode a compelling choice for developers, whether they are working on small-scałe projects or enterprise-level applications.
Często Zadawane Pytania
Jak mogę zintegrować kody kreskowe z Crystal Reports za pomocą C#?
Aby zintegrować kody kreskowe z Crystal Reports za pomocą C#, możesz użyć IronBarcode do generowania obrazów kodów kreskowych. Najpierw zainstaluj bibliotekę IronBarcode, wygeneruj obraz kodu kreskowego, zapisz go w bazie danych, a następnie użyj Crystal Reports do zaprojektowania układu i uwzględnienia obrazu kodu kreskowego.
Jaki jest proces generowania kodu kreskowego w C#?
Korzystając z IronBarcode, możesz wygenerować kod kreskowy w C# poprzez utworzenie obiektu kodu kreskowego, dostosowanie go za pomocą opcji takich jak zmiana rozmiaru i dodawanie tekstu, a następnie zapisanie obrazu do pliku lub bazy danych do użycia w raportach.
Jak zapisać obraz kodu kreskowego do bazy danych w C#?
Po wygenerowaniu obrazu kodu kreskowego z IronBarcode, możesz go zapisać w bazie danych, konwertując obraz do formatu binarnego i używając ADO.NET do wstawienia go do tabeli bazy danych.
Jakie są korzyści z używania IronBarcode do generowania kodów kreskowych w C#?
IronBarcode jest korzystny do generowania kodów kreskowych w C#, ponieważ obsługuje różne formaty kodów kreskowych, pozwala na dostosowanie i oferuje prosty interfejs API do szybkiej integracji z aplikacjami, poprawiając zarówno inwentaryzację, jak i śledzenie dokumentów.
Jak mogę skonfigurować połączenie z bazą danych w Crystal Reports do integracji kodów kreskowych?
Aby skonfigurować połączenie z bazą danych w Crystal Reports, użyj Eksploratora Pól, aby przejść do Pola Bazy Danych, następnie przejdź do Eksperta Bazy Danych, rozwiń Utwórz nowe Połączenie, wybierz OLE DB(ADO) i skonfiguruj połączenie z niezbędnymi szczegółami serwera.
Czy można użyć IronBarcode do generowania kodów QR w Crystal Reports?
Tak, IronBarcode może służyć do generowania kodów QR, a także innych typów kodów kreskowych, co czyni go wszechstronnym rozwiązaniem do integracji różnych formatów kodów kreskowych z Crystal Reports.
Jakie kroki należy wykonać, aby zaprojektować układ raportu Crystal Report z kodami BarCode?
Projektowanie układu raportu Crystal Report z kodami kreskowymi obejmuje utworzenie szablonu raportu, nawiązanie połączenia z bazą danych, dodanie pola obrazu kodu kreskowego oraz sformatowanie raportu w celu efektywnego włączenia danych kodu kreskowego.
W jaki sposób IronBarcode rozszerza możliwości raportowania w projektach C#?
IronBarcode rozszerza możliwości raportowania w projektach C#, zapewniając elastyczne i łatwe w użyciu rozwiązanie do generowania i integracji kodów kreskowych, co poprawia wizualizację danych i zarządzanie nimi w raportach.




