c# render pdf : How to reorder pages in pdf file control software platform web page windows html web browser vb_dot_net_developers_guide45-part599

418
Chapter 9 • Using ADO.NET
and the COM Interop module, we can call any COM+ component as if it were
a native .NET library.This module is a proxy that allows us to make use of the
existing code base without having to modify any of the COM components.
Therefore, we can easily make use of the ADO functionality we have grown to
love (and sometimes hate).
To make this happen, we will use the TLBIMP, a utility that comes with the
.NET Framework. Using the Type library from the COM component to be
imported,TLBIMP creates a .NET assembly containing the necessary .NET
metadata.To import the ADO libraries into .NET, all we need to do is execute
the following command at the command prompt:
tlbimp.exe <pathto>\msado15.dll
This creates a file ADODB.dll in the current directory, unless you specify a
different path or name using the /out: switch. Usually, you don’t have to do any
of this if you are using Visual Studio.NET. Set a reference to the ADO library in
the registered COM Components list to set this up in Visual Studio.NET.
To summarize, ADO.NET does not support connected database operations. If
you need this functionality, you are going to have to revert to the ADO and OLE
DB libraries using the COM Interop module.
Data Providers
Data providers are written specifically for a database. System.Data.SqlClient is an
example of a data provider written solely for access to Microsoft SQL Server.This
provider takes advantage of SQL Server in ways that are unique to Microsoft SQL
Server. It is written to use the SQL Server API directly and is more efficient than
using the more generic OLE DB, or ODBC providers.You should not use this
provider to connect to Oracle,Access, or any other database. It is, however, inher-
iting from the same base classes that System.Data.OleDb is.Therefore, if we write
code for the SQL data provider, we can just change our connection from
SqlConnection to an OleDbConnection, change the connection string, and the rest
of the code stays the same.This is one benefit of loose coupling; for example, we
can now easily change the data provider from Access to SQL Server.
Connection Strings
Connections are simpler than ever.An easy way to get a connection string is to
create an empty text file. Rename it using “udl”(Universal Data Link) for the
extension.
www.syngress.com
How to reorder pages in pdf file - re-order PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Customizing Page Order of PDF Document in C# Project
pdf change page order acrobat; how to reorder pages in pdf preview
How to reorder pages in pdf file - VB.NET PDF Page Move Library: re-order PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sort PDF Document Pages Using VB.NET Demo Code
reorder pages in pdf; how to reorder pdf pages in
Using ADO.NET • Chapter 9
419
Exercise 9.1 Creating a Connection String
1. Create a file with the name MyConnection.txt and then rename it to
MyConnection.udl.After opening MyConnection.udl from Explorer,
the Data Link Properties dialog box shown in Figure 9.1 appears.
2. Select the Provider tab and then pick your OLE DB provider. Figure
9.2 is an example of the provider-specific dialog that will prompt you for
information for building a SQL Server connection string.
The resulting text will look something like this:
[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Password=;Persist Security Info=True; _
User ID=DBUser;Initial Catalog=Northwind;Data Source=LocalHost
You can paste this into your code without worrying about whether
the parameters are set up correctly.
www.syngress.com
Figure 9.1
Data Link Properties Dialog Box
C# TIFF: How to Reorder, Rearrange & Sort TIFF Pages Using C# Code
C# TIFF - Sort TIFF File Pages Order in C#.NET. Reorder, Rearrange and Sort TIFF Document Pages in C#.NET Application. C# TIFF Page Sorting Overview.
how to move pages in pdf; how to reverse pages in pdf
C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
C# .NET, add new PDF page, delete certain PDF page, reorder existing PDF pages and split may choose to only rotate a single page of PDF file or all
how to move pages in pdf acrobat; reorder pdf page
420
Chapter 9 • Using ADO.NET
www.syngress.com
Connection Pooling
Connection pooling for the SqlClient connections is handled in Windows
2000 Component services. Each connection pool is differentiated using
a unique connection string using an exact matching algorithm. In other
words, all we have to do to take advantage of connection pooling is use
the  same  connection  string.  In  addition,  since  the  SqlConnection  is
being hosted in Windows 2000 Component services, we can take advan-
tage of the resource management that Component services provides.
We do have some options that we can include in the connection
string  to  modify  the  default  behavior  of  connection  pooling  for  the
SqlConnection  object.  These  options  are  well  documented  in  the
Framework SDK.
Connection  pooling  for  the  OleDbConnection  object  is  handled
using OLE DB session pooling, which is handled by the OLE DB provider,
not ADO.NET. As with SqlConnection pooling, we use identical connec-
tion strings to differentiate the pools, and we can modify the behavior
of the pool using connection string arguments. These arguments are not
documented in the Framework SDK; they are specific to OLE DB, and are
not the same as the SqlConnection options. Therefore, the connections
are not portable across namespaces if they modify the connection pools.
Developing & Deploying…
Figure 9.2
Connection Options for a SQL Server OLE DB Provider
VB.NET PowerPoint: Sort and Reorder PowerPoint Slides by Using VB.
Sort and Reorder PowerPoint Slides Range with VB amount of robust PPT slides/pages editing methods powerful & profession imaging controls, PDF document, image
change page order pdf; rearrange pdf pages in reader
VB.NET TIFF: Modify TIFF File by Adding, Deleting & Sort TIFF
Users can use it to reorder TIFF pages in ''' &ltsummary> ''' Sort TIFF document pages in designed powerful & profession imaging controls, PDF document, image
change page order pdf acrobat; move pages in a pdf
Using ADO.NET • Chapter 9
421
Command Objects
The Command objects OleDbCommand and SqlCommand allow us to execute
statements directly against the database.They provide for simple and direct route
to our data, regardless of where the data resides.They can have a collection of
parameters that are used to pass variables in and get variables out. If you need to
get the return value of a stored procedure, the Command object is the object to
use. Command objects are particularly useful for executing INSERT, UPDATE,
and DELETE statements, but can also generate DataReader and XMLDataReader
objects for returning data:
Dim strSql As String = "SELECT * FROM Orders"
Dim sConn As String = "Provider=SQLOLEDB.1;" & _
"Password=password;" & _
"Persist Security Info=True;" & _
"User ID=sa;" & _
"Initial Catalog=Northwind;" & _
"Data Source=localhost"
Dim myConnection = New OleDbConnection(sConn)
Dim myCmd As OleDbCommand = New OleDbCommand(strSql,
myOleDbConnection)
These are useful for database operations that do not require records to be
returned.They also give us an object to use for parameterized stored procedures
and process output values and return values when necessary.
The Command objects are particularly suited for calling stored procedures,
which is the preferred method for data access. Stored procedures allow some
Relational Database Management Systems to precompile and take advantage of
statistics that it has gathered on the source tables. For example:
CREATE PROCEDURE getShippers AS
Select *
From shippers
Order By CompanyName
This stored procedure just returns an ordered list of records from the Shippers
table in the Northwind database.To call this procedure, we can use a couple of
different syntaxes.We can just specify the name of the stored procedure instead of
www.syngress.com
C# PDF: C# Code to Process PDF Document Page Using C#.NET PDF
delete or remove certain page from PDF document file. C# PDF Page Processing: Sort PDF Pages - online C#.NET tutorial page for how to reorder, sort, reorganize
how to move pages around in pdf; pdf reverse page order preview
Read PDF in Web Image Viewer| Online Tutorials
for image viewing to read, edit, create or write PDF documents from file or stream in Extract images from PDF documents; Add, reorder pages in PDF
move pdf pages online; change page order in pdf file
422
Chapter 9 • Using ADO.NET
a SQL statement, or we can create a Command object explicitly. Here is an
example of replacing a select statement with the name of a stored procedure:
'strSql = "SELECT * FROM Shippers" 
strSql = "getShippers" 
objOleDbCommand = New OleDbCommand(strSql, myOleDbConnection)
Here we commented out the line with the select statement in it and inserted
the stored procedure name. For a better example, let’s add an input parameter. By
adding a parameter to the stored procedure, we can now limit the rows that our
application uses and make it more efficient. For example, say we add a parameter
to the stored procedure that is used to find a shipper with a particular ShipperID.
To call it, we just add the parameter in the order required by the stored proce-
dure. In our case, with one parameter, it would look like this:
strSql = "getShippersByID 2"
This method is fine when you are only trying to get some records back from
a stored procedure, but not very useful if you are trying to get an output value or
a return value. Here is where the Parameter objects come into play.To implement
our example with a parameter:
Dim strSP As String
Dim objOleDbCmd As OleDbCommand
Dim objParam As OleDbParameter
Dim objConnection As OleDbConnection
Dim objAdapter As OleDbDataAdapter
Dim myDataSet As DataSet
Try
strSP = "getShippersByID"
Get the new connection to the database. If we have a connection that is avail-
able, we could use it instead of creating a new one—the fewer connections, the
better:
objConnection = New OleDbConnection(sConn)
objConnection.Open()
www.syngress.com
VB.NET TIFF: VB.NET Sample Code to Process & Manage TIFF Page
certain TIFF page, and sort & reorder TIFF pages in Process TIFF Pages Independently in VB.NET Code. powerful & profession imaging controls, PDF document, image
reorder pages of pdf; reorder pages in pdf preview
C# Word: How to Create Word Document Viewer in C#.NET Imaging
in C#.NET; Offer mature Word file page manipulation functions (add, delete & reorder pages) in document viewer; Rich options to add
how to rearrange pdf pages; move pdf pages in preview
Using ADO.NET • Chapter 9
423
Instantiate a new Command object and specify the new connection we just
created. Set the type of command to stored procedure:
objOleDbCmd = New OleDbCommand(strSP, objConnection)
objOleDbCmd.CommandType = CommandType.StoredProcedure 
The following code does several things. First, starting from the inner paren-
theses, we are creating a new OleDbParameter with a DataType of unsigned
integer and a size of 4.Then it adds this new parameter to the parameters collec-
tion of the Command object that we just created. Finally, we put a reference to
this newly created Parameter object in the variable objParam:
objParam = objOleDbCmd.Parameters.Add(New OleDbParameter("@ID", _
OleDbType.UnsignedInt, 4))
Here we are setting the direction of the parameter and its value.The value 
is easy enough to explain, but the direction is a little more complicated. Refer 
to Table 9.2 for an explanation of the different options we have for parameter
direction:
objParam.Direction = ParameterDirection.Input
objParam.value = intShipperID
This line of code sets the SelectCommand of our DataAdapter to the 
newly created CommandObject objOleDbCmd.We have the option of 
specifying SelectCommand, InsertCommand, DeleteCommand, and
UpdateCommand:
objAdapter.SelectCommand = objOleDbCmd
Here we fill our dataset using the Fill method of the Adapter object:
objAdapter.Fill(myDataSet)
Now, all that is left is to set the data source of our DataGrid and complete
the Error handler:
DGorders.DataSource = myDataSet
Catch e As Exception
MsgBox(e.ToString)
Finally
objConnection.Close()
End Try
www.syngress.com
424
Chapter 9 • Using ADO.NET
Table 9.2
Parameter Directions
Member
Name Description 
Input
The parameter is an input parameter. This allows for data to 
be passed into the command, but not out. We may have 
more than one.
Output
The parameter is an output parameter. It is used to return 
variables, but cannot be used to pass data into a command. 
The command must be written specifically to populate this 
variable as part of its routine. We may have more than one.
InputOutput
The parameter is capable of both input and output. It is used 
when we need to pass data in to and out of a command in 
one object. It does exactly as its name implies, it performs 
both the input and the output operations. We may have more 
than one.
ReturnValue
The parameter represents a return value. This is similar to the 
output parameter, except that we can only have one.
This example demonstrated the use of an OleDbCommand object to popu-
late a DataSet.We passed a reference of the OleDbCommand object we created
to the SelectCommand property of the DataAdapter.When we called the Fill
method, it used our OleDbCommand object to execute a DataReader and popu-
late our DataSet.
We had to create a Parameter object, set its direction to Input, and then its
value. It is interesting to note that in ADO we made up our own names for the
Parameter objects that we created. In ADO.NET, we must ensure that our param-
eters are named the same as they are in the definition of the stored procedure.
ADO.NET uses them to implement named parameters and will throw an excep-
tion if it doesn’t find a match. Of course, DataTypes must also match.
To get an output parameter, we can modify our stored procedure to return
the current day of the server just as a demonstration of the output parameter.You
can easily turn this into an example of returning the ID of a newly created
record:
objParam = objOleDbCmd.Parameters.Add(New
OleDbParameter("@CurrentDay",_ 
OleDbType.Date, 8))
objParam.Direction = ParameterDirection.Output
www.syngress.com
Using ADO.NET • Chapter 9
425
Accessing this value after the OleDbCommand.ExecuteNonQuery method had
been called is simple:
dtServerDate = objSQLCmd.Parameters("@CurrentDay").Value
As we can see here, using the stored procedure in the SQL statement is sim-
pler, but not as flexible.We can also access the return value using a similar tech-
nique.The only difference in using the return value is that we must declare a
parameter with the name “RETURN VALUE,” and a direction of type return
value.After that, we access it just like any other output value.The return value
from a SQL Server stored procedure can only be a DataType of Integer. If the
preceding example were something like the number of days since an order date,
we could use these lines of code to get it.The stored procedure might look
something like this:
CREATE PROCEDRUE GetDaysSinceLastOrder(@CustID nChar(5))
AS DECLARE @iDays INT
Select @iDays = DATEDIFF(dd, Max(OrderDate), GETDATE())
From Orders
Where CustomerID = @CustID
Return @iDays
The VB code to create the parameter and get the return value should look
something like this:
objParam = objOleDbCmd.Parameters.Add(New OleDbParameter("RETURN
VALUE"_ , OleDbType.Char, 5))
objParam.Direction = ParameterDirection.ReturnValue
Play around with this object; it is probably going to be one of the most used
in your toolbox. Understanding how to use the output values and returning data
from them will be essential to your high-performance development.
DataReader
The DataReader is a read-only, forward-scrolling Data object that allows us to
gain access to rows in a streaming fashion. It is typically used when we need
read-only access to data because it is much faster than using a DataSet.A DataSet
is populated behind the scenes using a DataReader, so if we don’t need the 
www.syngress.com
426
Chapter 9 • Using ADO.NET
features of a DataSet, we should not create one.A DataReader is created either
from the OLE DB libraries or from the SqlClient libraries. Here is a simple
example of creating an OleDbDataReader from a Command object:
Dim myReader As OleDbDataReader = myCmd.ExecuteReader()
We now have a populated DataReader object that we can use like this:
While myReader.Read
'// do some row level data manipulation here 
End While
The DataReader object allows for much greater speed, especially if you need
to access a large amount of data. It does not allow us to update information, nor
does it allow us to store information as the DataSet object does.
DataSet
A DataSet is an in-memory copy of a portion of the database in which we are
interested.This may be one table, or many tables. Imagine a small relational
database residing in a variable.This is a complete copy of the requested data. It is
completely disconnected from the original data source and doesn’t know any-
thing about where the data came from. By that, I mean that we could populate
the data from XML from our Microsoft BizTalk Server, save it to Microsoft SQL
Server, and then write it out to an XML file.
When we are finished with our operations, the entire DataSet is submitted to
the data source for processing. It takes care of standard data processing such as
updating, deleting, and inserting records.The DataSet object is a key player in the
ADO.NET object model. Examine the object model in Figure 9.3 for the
DataSet object and the collections it can contain. Due to the architecture of
ADO.NET, it is possible for several combinations of collections.Take the
Columns Collection as an example.As you can see, the DataTable object has a
Columns collection made up of DataColumn objects.The PrimaryKey property
of the DataTable contains collection of DataColumns as well.This is the same
DataColumn object in the DataTables.Columns collection, but two different
instances of it.
www.syngress.com
Using ADO.NET • Chapter 9
427
Disconnected Layer
By its very nature,ADO.NET is disconnected, which means that we do not
maintain a connection to the data source.We open a connection, retrieve the
data, and close the connection.This allows our data source to free up resources,
and respond to the next user.
This may place a higher premium on bandwidth, so we need to be as specific
as possible when requesting data.We are going to have to refrain from Select *
www.syngress.com
Figure 9.3
DataSet Object Model
DataSet
Relations
Table Collection
DataTable
Rows
DataRelation
DefaultView
ChildRelations
ParentRelations
Constraints
Columns
DataColumn
DataRow
PrimaryKey
DefaultView
DataRelation
DataRelation
DataColumn
Documents you may be interested
Documents you may be interested