See Also
Features
Buy Now
Online Help
Demo
Licensing

Back

How to data binding ADO.NET DataSet Access or SQL Server DB to print barcode labels with Zebra ZPL-EPL printers and VB.NET or C# by using ThermalLabel SDK for .NET

Prerequisites
  • Neodynamic ThermalLabel SDK v4.0 for .NET
  • Microsoft .NET Framework 3.5 (or greater)
  • Microsoft Visual Studio 2008 / 2010
  • Microsoft Visual Studio 2008 / 2010 Express Editions (VB, C#)
  • Any Zebra Thermal Printer supporting ZPL (Zebra Programming Language) or EPL (Eltron Programming Language)
ThermalLabel SDK supports .NET Data Binding scenarios allowing you to print thermal labels bound to a data source such as custom .NET objects, XML files, Databases, ADO.NET, etc.

In this guide you will learn how to perform data binding with databases like MS Access or SQL Server to print barcode labels with Zebra ZPL or EPL printers by using ThermalLabel SDK for .NET

The following sample features an MS Access Database file (C:\Temp\DatabaseSample.mdb) containing an Employees table. An ADO.NET DataTable as well as a ThermalLabel objects will be used for data binding scenario printing a set of thermal labels for each employee as shown in the following figure.
How to data binding ADO.NET DataSet Access or SQL Server DB to print barcode labels with Zebra ZPL-EPL printers and VB.NET or C# by using ThermalLabel SDK for .NET


IMPORTANT: To test the sample code you must have installed a Zebra ZPL-based or EPL-based thermal printer.

Follow these steps:
  • Download and install latest version of Neodynamic ThermalLabel SDK for .NET
  • Open Visual Studio 2008 / 2010 and create a Windows Forms application.
  • Add a reference to Neodynamic.SDK.ThermalLabel.dll assembly.
  • Download the DatabaseSample.mdb database file and copy it to C:\temp\ folder. The structure of the Employees table in DatabaseSample.mdb file is as follows:

    The structure of the Employees table in DatabaseSample.mdb file is as follows...


  • Add a button control onto the form and paste the following code in the click event handler of the button:
    Visual Basic .NET
    'Define a ThermalLabel object and set unit to inch and label size
    Dim tLabel As New ThermalLabel(UnitType.Inch, 3, 2)
    tLabel.GapLength = 0.2
    
    'Define a couple of TextItem objects for Employee info
    Dim txt1 As New TextItem(0.1, 0.05, 2.8, 0.3, "")
    'set data field
    txt1.DataField = "Name"
    'set font
    txt1.Font.Name = "Arial"
    txt1.Font.Unit = FontUnit.Point
    txt1.Font.Size = 12
    'set alignment
    txt1.TextAlignment = TextAlignment.Left
    
    Dim txt2 As New TextItem(0.1, 0.35, 2.8, 0.3, "")
    'set data field
    txt2.DataField = "Address"
    'set font
    txt2.Font.Name = "Arial Narrow"
    txt2.Font.Unit = FontUnit.Point
    txt2.Font.Size = 10
    'set alignment
    txt2.TextAlignment = TextAlignment.Left
    
    Dim txt3 As New TextItem(0.1, 0.65, 1.5, 0.3, "")
    'set data field
    txt3.DataField = "City"
    'set font
    txt3.Font.Name = "Arial Narrow"
    txt3.Font.Unit = FontUnit.Point
    txt3.Font.Size = 10
    'set alignment
    txt3.TextAlignment = TextAlignment.Left
    
    Dim txt4 As New TextItem(1.6, 0.65, 0.5, 0.3, "")
    'set data field
    txt4.DataField = "State"
    'set font
    txt4.Font.Name = "Arial Narrow"
    txt4.Font.Unit = FontUnit.Point
    txt4.Font.Size = 10
    'set alignment
    txt4.TextAlignment = TextAlignment.Left
    
    Dim txt5 As New TextItem(2.1, 0.65, 0.7, 0.3, "")
    'set data field
    txt5.DataField = "PostalCode"
    'set font
    txt5.Font.Name = "Arial Narrow"
    txt5.Font.Unit = FontUnit.Point
    txt5.Font.Size = 10
    'set alignment
    txt5.TextAlignment = TextAlignment.Left
                
    'Define a BarcodeItem object for encoding the postal code in USPS Postnet
    Dim bc As New BarcodeItem(0.1, 0.95, 2.8, 0.65, BarcodeSymbology.Postnet, "")
    'set data field
    bc.DataField = "PostalCode"
    'set narrow bar width
    bc.BarWidth = 0.02
    'do not set a quiet zone
    bc.QuietZone = new FrameThickness(0)
    'set barcode alignment
    bc.BarcodeAlignment = BarcodeAlignment.TopLeft
    'hide human readable text
    bc.DisplayCode = False
    
    'Add items to ThermalLabel object...
    tLabel.Items.Add(txt1)
    tLabel.Items.Add(txt2)
    tLabel.Items.Add(txt3)
    tLabel.Items.Add(txt4)
    tLabel.Items.Add(txt5)
    tLabel.Items.Add(bc)
    
    'Create data source...
    Dim employees As New DataTable()
    Using conn As New System.Data.OleDb.OleDbConnection("Provider= Microsoft.JET.OLEDB.4.0; Data Source=C:\temp\DataBaseSample.mdb")
        'open db connection...
        conn.Open()
        'execute db command...
        Using cmd As New System.Data.OleDb.OleDbCommand("SELECT TOP 6 * FROM Employees", conn)
            Using reader As System.Data.OleDb.OleDbDataReader = cmd.ExecuteReader()
                employees.Load(reader)
            End Using
        End Using
    End Using
    
    'set data source...
    tLabel.DataSource = employees
    
    'Create a PrintJob object
    Using pj As New PrintJob()
    	'Create PrinterSettings object
    	Dim myPrinter As New PrinterSettings()
    	myPrinter.Communication.CommunicationType = CommunicationType.USB
    	myPrinter.Dpi = 203
    	myPrinter.ProgrammingLanguage = ProgrammingLanguage.ZPL
    	myPrinter.PrinterName = "Zebra  TLP2844-Z"
    
    	'Set PrinterSettings to PrintJob
    	pj.PrinterSettings = myPrinter
    	'Print ThermalLabel object...
    	pj.Print(tLabel)
    End Using
    
    Visual C# .NET
    //Define a ThermalLabel object and set unit to inch and label size
    ThermalLabel tLabel = new ThermalLabel(UnitType.Inch, 3, 2);
    tLabel.GapLength = 0.2;
    
    //Define a couple of TextItem objects for Employee info
    TextItem txt1 = new TextItem(0.1, 0.05, 2.8, 0.3, "");
    //set data field
    txt1.DataField = "Name";
    //set font
    txt1.Font.Name = "Arial";
    txt1.Font.Unit = FontUnit.Point;
    txt1.Font.Size = 12;
    //set alignment
    txt1.TextAlignment = TextAlignment.Left;
    
    TextItem txt2 = new TextItem(0.1, 0.35, 2.8, 0.3, "");
    //set data field
    txt2.DataField = "Address";
    //set font
    txt2.Font.Name = "Arial Narrow";
    txt2.Font.Unit = FontUnit.Point;
    txt2.Font.Size = 10;
    //set alignment
    txt2.TextAlignment = TextAlignment.Left;
    
    TextItem txt3 = new TextItem(0.1, 0.65, 1.5, 0.3, "");
    //set data field
    txt3.DataField = "City";
    //set font
    txt3.Font.Name = "Arial Narrow";
    txt3.Font.Unit = FontUnit.Point;
    txt3.Font.Size = 10;
    //set alignment
    txt3.TextAlignment = TextAlignment.Left;
    
    TextItem txt4 = new TextItem(1.6, 0.65, 0.5, 0.3, "");
    //set data field
    txt4.DataField = "State";
    //set font
    txt4.Font.Name = "Arial Narrow";
    txt4.Font.Unit = FontUnit.Point;
    txt4.Font.Size = 10;
    //set alignment
    txt4.TextAlignment = TextAlignment.Left;
    
    TextItem txt5 = new TextItem(2.1, 0.65, 0.7, 0.3, "");
    //set data field
    txt5.DataField = "PostalCode";
    //set font
    txt5.Font.Name = "Arial Narrow";
    txt5.Font.Unit = FontUnit.Point;
    txt5.Font.Size = 10;
    //set alignment
    txt5.TextAlignment = TextAlignment.Left;
                
    //Define a BarcodeItem object for encoding the postal code in USPS Postnet
    BarcodeItem bc = new BarcodeItem(0.1, 0.95, 2.8, 0.65, BarcodeSymbology.Postnet, "");
    //set data field
    bc.DataField = "PostalCode";
    //set narrow bar width
    bc.BarWidth = 0.02;
    //do not set a quiet zone
    bc.QuietZone = new FrameThickness(0);
    //set barcode alignment
    bc.BarcodeAlignment = BarcodeAlignment.TopLeft;
    //hide human readable text
    bc.DisplayCode = false;
    
    //Add items to ThermalLabel object...
    tLabel.Items.Add(txt1);
    tLabel.Items.Add(txt2);
    tLabel.Items.Add(txt3);
    tLabel.Items.Add(txt4);
    tLabel.Items.Add(txt5);
    tLabel.Items.Add(bc);
    
    //Create data source...
    DataTable employees = new DataTable();
    using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(@"Provider= Microsoft.JET.OLEDB.4.0; Data Source=C:\temp\DataBaseSample.mdb"))
    {
        //open db connection...
        conn.Open();
        //execute db command...
        using (System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand("SELECT TOP 6 * FROM Employees", conn))
        {
            using (System.Data.OleDb.OleDbDataReader reader = cmd.ExecuteReader())
            {
                employees.Load(reader);
            }
        }
    }
    
    //set data source...
    tLabel.DataSource = employees;
    
    //Create a PrintJob object
    using (PrintJob pj = new PrintJob())
    {
    	//Create PrinterSettings object
    	PrinterSettings myPrinter = new PrinterSettings();
    	myPrinter.Communication.CommunicationType = CommunicationType.USB;
    	myPrinter.Dpi = 203;
    	myPrinter.ProgrammingLanguage = ProgrammingLanguage.ZPL;
    	myPrinter.PrinterName = "Zebra  TLP2844-Z";
    
    	//Set PrinterSettings to PrintJob
    	pj.PrinterSettings = myPrinter;
    	//Print ThermalLabel object...
    	pj.Print(tLabel);
    }
    


  • Run the sample Windows Forms application and test it.
If you need more information or assistance, please contact our .
 Copyright © 2003 - 2012 Neodynamic S.R.L. All rights reserved.