C#を使用してCrystal Reportsにバーコードを追加する方法
Crystal Reportsは、開発者がアプリケーションのために機能豊富なレポートを作成できる強力なレポートツールです。 バーコードをC#を使用してCrystal Reportsに含める場合、データの表現に新しい次元が追加され、情報の管理と追跡が容易になります。 この記事では、C#を使用してCrystal Reportsにバーコードを統合する手順について探ります。
How to Add a Barcode in Crystal Reports using C#
- バーコードライブラリをインストールします。
- バーコード画像を生成し、それをデータベーステーブルに画像として保存します。
- Crystal Reportのレイアウトを設計します。
- データベースに接続し、必要なテーブルを選択します。
- Crystal Reportのレイアウトにバーコード画像フィールドを含めます。
- プロジェクトをビルドして実行します。
バーコードライブラリを選ぶ
実装に取りかかる前に、Crystal ReportsとC#をサポートするバーコードライブラリを選ぶことが重要です。 人気のある選択肢の一つが.NET用のIronBarcodeです。
IronBarcodeとは
IronBarcodeは、バーコードの生成と読取りを簡素化する多用途 for .NETライブラリです。 IronBarcodeを使用することで、エンコードする値を指定することで Code 128やQRコードを含む様々なバーコードを簡単に作成できます。 また、リサイズやカスタマイズもサポートしています。 読み取りの側面では、IronBarcodeは画像やPDFからバーコードデータを抽出でき、在庫管理や文書追跡に最適です。 その使いやすいAPIはプロジェクトへの迅速な統合を保証し、クロスプラットフォームのサポートは異なる.NETバージョン間でのシームレスな開発を可能にします。 経験豊富な開発者でも初心者でも、IronBarcodeは効率的にバーコードを扱う力を与えます。
新しいプロジェクトを作成する
ASP.NET Crystal Reports Web Siteを作成するためにVisual Studioを開きます。私はVisual Studio 2022を使用しています。 どれでも使用できますが、該当バージョンのVisual Studio用のCrystal Reportsがインストールされていることを確認してください。

プロジェクト名、場所、ターゲットフレームワークを選択します。 作成ボタンをクリックします。 以下のように新しいプロジェクトが作成されます。

始める前に、データベースが必要です。 新しいデータベースとサンプルテーブルを作成しましょう。
新しいデータベースを作成する
次のスクリプトで新しいデータベースを作成します。
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
このテーブルにデータを挿入します。 バーコードを生成し、それをProductテーブルに保存します。 したがって、C#コードを使用してデータを挿入し、プロジェクトにIronBarcodeライブラリをインストールしてバーコードを作成する機能を使用する必要があります。
IronBarcodeライブラリをインストールする
NuGetパッケージマネージャーコンソールを使用してIronBarcodeライブラリをインストールするため、次の手順に従います:
NuGetパッケージマネージャーコンソールを開きます。 それを表示するには、[表示] -> [その他のウィンドウ] -> [パッケージマネージャーコンソール] に移動して見つけることができます。

パッケージマネージャーコンソールで、IronBarcodeライブラリをインストールするには次のコマンドを使用します:
エンターキーを押してコマンドを実行します。
または、ソリューション用のNuGetパッケージの管理を使用してIronBarcodeライブラリをインストールすることもできます:

NuGetパッケージマネージャーがIronBarcodeライブラリとその依存関係をダウンロードしてインストールするのを待ちます。 インストールが完了すると、パッケージマネージャーコンソールに確認メッセージが表示されます。
これで、IronBarcodeライブラリがプロジェクトにインストールされ、バーコードの生成および読み取りにその機能を使用することができます。
バーコード画像を生成しデータベースに保存する
ADO.NETを使用して、バーコード画像を生成し、データベースに保存します。 次のコードは、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();
}
}
}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 ClassImports 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コードの説明
1. バーコード生成
-
var myBarcode = BarcodeWriter.CreateBarcode("77446252", BarcodeWriterEncoding.Code128);- この行は
BarcodeWriterクラスのCreateBarcode()メソッドを使用してバーコードを作成します。 バーコードは、文字列"77446252"によって表されるデータから、Code 128エンコーディング形式を使用して生成されます。myBarcode変数は現在生成されたバーコードを保持しています。
- この行は
-
AddBarcodeValueTextBelowBarcode()- この関数は、バーコード値の説明テキストをバーコードの下に追加します。
-
ResizeTo(600, 300)- バーコード画像の高さと幅を指定の寸法に調整します。
-
ファイルシステムにバーコード画像を保存するために
SaveAs()メソッドを使用できます。
上記のコードから生成されるバーコードは次の通りです:

2. データベース接続設定
-
SqlConnection cn = new SqlConnection("Data Source=localhost\\SQLEXPRESS;Initial Catalog=ProductDB;User ID=sa;Password=123456;Integrated Security=SSPI;");- SQL Serverデータベースへの接続を確立します。 接続文字列はサーバー(
localhost\\SQLEXPRESS)、初期カタログ(データベース名:user ID saおよびpassword 123456)を指定します。
- SQL Serverデータベースへの接続を確立します。 接続文字列はサーバー(
3. SQLコマンド作成
-
SqlCommand cmd = new SqlCommand($"INSERT INTO dbo.Products VALUES (77446252, 'Pine Apple Small', '100', '{myBarcode.BinaryStream}' )", cn);- 新しい
SqlCommandオブジェクトを作成します。 このコマンドは、Productsテーブルにデータを挿入するSQLクエリを表します。 - クエリはテーブルカラムに値を挿入します:
myBarcode.BinaryStream)。
- 新しい
4. データベースとのやり取り
cn.Open();:データベースへの接続が開かれます。cmd.ExecuteNonQuery();: SQLクエリが実行され、指定された値がProductsテーブルに挿入されます。cn.Close();:データベース接続を閉じてリソースを解放します。
Crystal Reportsバーコード生成器を設計する
次に、レポートのレイアウトを設計し、データベース接続を追加し、必要なフィールドを配置します。 もしこれが初めての場合、以下の手順に従ってください。
-
フィールドエクスプローラを開く => データベースフィールド => データベースエキスパート。

-
新しい接続を作成 => OLE DB(ADO) => 新しい接続を作成します。

-
Microsoft OLE DB Data Source for SQL Serverを選択し、次へをクリックします。

-
下記のようにサーバー名、ログイン資格情報、データベース名を提供します。

-
次へボタンを押すと新しいウィンドウが表示され、完了をクリックします。
-
追加するテーブルを選択します。 この場合、Productsテーブルを選択します。

Crystal Report ViewerでCrystal Report Previewを確認します。

プロジェクトをビルドして実行します。 出力は以下の通りです。

サンプルデータセットパッケージをダウンロードしておらず、正しいデータファイルを確保し、C#での包括的なデータビジュアライゼーションのためにCrystal Reportを作成しました。
このようにして、Crystal Reportsアプリケーションでバーコードフォントをダウンロードすることなくバーコードを作成できます。 同様に、必要に応じてQRコードも追加できます。
結論
結論として、C#を使用してCrystal Reportsにバーコードを統合することは、データ表現と管理を強化する強力な方法です。 信頼性のあるバーコードライブラリであるIronBarcodeを選択すると、プロセスが簡素化され、多用途性と使いやすさを提供します。 IronBarcodeは、様々なバーコードタイプ、リサイズ、カスタマイズ機能のサポートにより、バーコード生成および読取りタスクで貴重な資産であることを証明します。 ここで提供されたステップバイステップガイドは、ライブラリの選択からCrystal Reportレイアウトのデザインまで、シームレスな実装プロセスを保証します。
さらに、IronBarcodeは、バーコード統合体験を向上させるために追加の機能とサポートを開発者に提供します。 この柔軟性により、IronBarcodeは小規模プロジェクトやエンタープライズレベルのアプリケーションのいずれを開発する場合でも、開発者にとって説得力がある選択肢となります。
Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。