save pdf in database c# : Excel print to pdf with bookmarks Library SDK class asp.net .net wpf ajax ASPNETWebPagesWithRazorSyntax-Book8-part627

ASP.NET Web Pages Using The Razor Syntax 
Chapter 5 – Working with Data 
77 
if (Price.IsEmpty()) { 
ModelState.AddError("Price", "Product price is required."); 
// Define the insert query. The values to assign to the 
// columns in the Product table are defined as parameters 
// with the VALUES keyword. 
if(ModelState.IsValid) { 
var insertQuery = "INSERT INTO Product (Name, Description, Price) " + 
"VALUES (@0, @1, @2)"; 
db.Execute(insertQuery, Name, Description, Price); 
// Display the page that lists products. 
Response.Redirect(@Href("~/ListProducts")); 
<!DOCTYPE html> 
<html> 
<head> 
<title>Add Products</title> 
<style type="text/css"> 
label {float:left; width: 8em; text-align: right; 
margin-right: 0.5em;} 
fieldset {padding: 1em; border: 1px solid; width: 35em;} 
legend {padding: 2px 4px; border: 1px solid; font-weight:bold;} 
.validation-summary-errors {font-weight:bold; color:red; font-size: 11pt;} 
</style> 
</head> 
<body> 
<h1>Add New Product</h1> 
@Html.ValidationSummary("Errors with your submission:") 
<form method="post" action=""> 
<fieldset> 
<legend>Add Product</legend> 
<div> 
<label>Name:</label> 
<input name="Name" type="text" size="50" value="@Name" /> 
</div> 
<div> 
<label>Description:</label> 
<input name="Description" type="text" size="50" 
value="@Description" /> 
</div> 
<div> 
<label>Price:</label> 
<input name="Price" type="text" size="50" value="@Price" /> 
</div> 
<div> 
<label>&nbsp;</label> 
<input type="submit" value="Insert" class="submit" /> 
</div> 
</fieldset> 
</form> 
</body> 
Excel print to pdf with bookmarks - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
creating bookmarks in a pdf document; adding bookmarks in pdf
Excel print to pdf with bookmarks - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
create bookmarks in pdf reader; bookmark a pdf file
ASP.NET Web Pages Using The Razor Syntax 
Chapter 5 – Working with Data 
78 
</html>
The body of the page contains an HTML form with three text boxes that let users enter a name, 
description, and price. When users click the Insert button, the code at the top of the page opens 
a connection to the SmallBakery.sdf database. You then get the values that the user has 
submitted by using the 
Request
object and assign those values to local variables. 
To validate that the user entered a value for each required column, you do this: 
Name = Request["Name"]; 
if (Name.IsEmpty()) { 
ModelState.AddError("Name", 
"Product name is required."); 
}
If the value of the Name column is empty, you use the 
ModelState.AddError
method and pass it 
an error message. You repeat this for each column you want to check. After all the columns have 
been checked, you perform this test: 
if(ModelState.IsValid) { // ...  }
If all the columns validated (none were empty), you go ahead and create a SQL statement to 
insert the data and then execute it as shown next: 
var insertQuery = 
"INSERT INTO Product (Name, Description, Price) VALUES (@0, @1, @2)";
For the values to insert, you include parameter placeholders (
@0
@1
@2
). 
Note   As a security precaution, always pass values to a SQL statement using parameters, as you see 
in the preceding example. This gives you a chance to validate the user's data, plus it helps protect 
against attempts to send malicious commands to your database (sometimes referred to as SQL 
injection attacks).  
To execute the query, you use this statement, passing to it the variables that contain the values 
to substitute for the placeholders: 
db.Execute(insertQuery, Name, Description, Price);
After the 
Insert Into
statement has executed, you send the user to the page that lists the 
products using this line: 
Response.Redirect("~/ListProducts");
If validation didn't succeed, you skip the insert. Instead, you have a helper in the page that can 
display the accumulated error messages (if any): 
@Html.ValidationSummary("Errors with your submission:")
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Document tags. Embedded print settings. Bookmarks. Comments, forms and multimedia. VB.NET Demo Code to Optimize An Exist PDF File in Visual C#.NET Project.
export pdf bookmarks to excel; adding bookmarks to pdf
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
how to create bookmark in pdf with; create bookmark pdf
ASP.NET Web Pages Using The Razor Syntax 
Chapter 5 – Working with Data 
79 
Notice that the style block in the markup includes a CSS class definition named 
.validation-
summary-errors
. This is the name of the CSS class that's used by default for the 
<div>
element 
that contains any validation errors. In this case, the CSS class specifies that validation summary 
errors are displayed in red and in bold, but you can define the 
.validation-summary-errors
class 
to display any formatting you like. 
3.
View the page in a browser. The page displays a form that's similar to the one that's shown in 
the following illustration. 
4.
Enter values for all the columns, but make sure that you leave the Price column blank. 
5.
Click Insert. The page displays an error message, as shown in the following illustration. (No new 
record is created.) 
6.
Fill the form out completely, and then click Insert. This time, the ListProducts.cshtml page is 
displayed and shows the new record. 
Updating Data in a Database
After data has been entered into a table, you might need to update it. This procedure shows you how to 
create two pages that are similar to the ones you created for data insertion earlier. The first page 
displays products and lets users select one to change. The second page lets the users actually make the 
edits and save them. 
Important   In a production website, you typically restrict who's allowed to make changes to the 
data. For information about how to set up membership and about ways to authorize users to 
perform tasks on the site, see Chapter 16 - Adding Security and Membership
1.
In the website, create a new CSHTML file named EditProducts.cshtml. 
2.
Replace the existing markup in the file with the following: 
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Document tags. Embedded print settings. Embedded search index. Bookmarks. Comments, forms and multimedia. Flatten visible layers. C#.NET DLLs: Compress PDF Document
how to bookmark a pdf in reader; create bookmarks pdf
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Demo Code in VB.NET. The following VB.NET codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
bookmark pdf in preview; create bookmark in pdf automatically
ASP.NET Web Pages Using The Razor Syntax 
Chapter 5 – Working with Data 
80 
@{ 
var db = Database.Open("SmallBakery"); 
var selectQueryString = "SELECT * FROM Product ORDER BY Name"; 
<!DOCTYPE html> 
<html> 
<head> 
<title>Edit Products</title> 
<style type="text/css"> 
table, th, td { 
border: solid 1px #bbbbbb; 
border-collapse: collapse; 
padding: 2px; 
</style> 
</head> 
<body> 
<h1>Edit Small Bakery Products</h1> 
<table> 
<thead> 
<tr> 
<th>&nbsp;</th> 
<th>Name</th> 
<th>Description</th> 
<th>Price</th> 
</tr> 
</thead> 
<tbody> 
@foreach (var row in db.Query(selectQueryString)) { 
<tr> 
<td><a href="@Href("~/UpdateProducts", row.Id)">Edit</a></td> 
<td>@row.Name</td> 
<td>@row.Description</td> 
<td>@row.Price</td> 
</tr> 
</tbody> 
</table> 
</body> 
</html>
The only difference between this page and the ListProducts.cshtml page from earlier is that the 
HTML table in this page includes an extra column that displays an Edit link. When you click this 
link, it takes you to the UpdateProducts.cshtml page (which you'll create next) where you can 
edit the selected record. 
Look at the code that creates the Edit link: 
<a href="@Href("~/UpdateProducts", row.Id)">Edit</a></td>
This creates an HTML anchor (an 
<a>
element) whose 
href
attribute is set dynamically. The 
href
attribute specifies the page to display when the user clicks the link. It also passes the 
Id
value of 
the current row to the link. When the page runs, the page source might contain links like these: 
C# Create PDF Library SDK to convert PDF from other file formats
create searchable PDF document from Microsoft Office Word, Excel and PowerPoint. Create and save editable PDF with a blank page, bookmarks, links, signatures
create bookmarks in pdf from excel; how to bookmark a pdf file
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
by C#.NET PDF to HTML converter toolkit SDK, preserves all the original anchors, links, bookmarks and font style that are included in target PDF document file.
bookmarks pdf; creating bookmarks in pdf files
ASP.NET Web Pages Using The Razor Syntax 
Chapter 5 – Working with Data 
81 
<a href="UpdateProducts/1">Edit</a></td> 
<a href="UpdateProducts/2">Edit</a></td> 
<a href="UpdateProducts/3">Edit</a></td>
Notice that the 
href
attribute is set to 
UpdateProducts/
n
, where n is a product number. When a 
user clicks one of these links, the resulting URL will look something like this: 
http://localhost:18816/UpdateProducts/6 
In other words, the product number to be edited will be passed in the URL. 
3.
View the page in a browser. The page displays the data in a format like this: 
Next, you'll create the page that lets users actually update the data. The update page includes 
validation to validate the data that the user enters. For example, code in the page makes sure 
that a value has been entered for all required columns. 
4.
In the website, create a new CSHTML file named UpdateProducts.cshtml. 
5.
Replace the existing markup in the file with the following: 
@{ 
var db = Database.Open("SmallBakery"); 
var selectQueryString = "SELECT * FROM Product WHERE Id=@0"; 
var ProductId  = UrlData[0]; 
if (ProductId.IsEmpty()) { 
Response.Redirect(@Href("~/EditProducts")); 
var row = db.QuerySingle(selectQueryString, ProductId); 
var Name = row.Name; 
var Description = row.Description; 
var Price = row.Price; 
if (IsPost) { 
Name = Request["Name"]; 
if (String.IsNullOrEmpty(Name)) { 
ModelState.AddError("Name", "Product name is required."); 
VB.NET PDF: Basic SDK Concept of XDoc.PDF
VB.NET programmers can convert Word, Excel, PowerPoint Tiff, Jpeg, Bmp, Png, and Gif to PDF document. This class describes bookmarks in a PDF document.
bookmarks pdf reader; add bookmarks pdf
How to C#: Basic SDK Concept of XDoc.PDF for .NET
C# programmers can convert Word, Excel, PowerPoint Tiff, Jpeg, Bmp, Png, and Gif to PDF document. This class describes bookmarks in a PDF document.
bookmarks pdf file; create bookmark pdf file
ASP.NET Web Pages Using The Razor Syntax 
Chapter 5 – Working with Data 
82 
Description = Request["Description"]; 
if (String.IsNullOrEmpty(Description)) { 
ModelState.AddError("Description", 
"Product description is required."); 
Price = Request["Price"]; 
if (String.IsNullOrEmpty(Price)) { 
ModelState.AddError("Price", "Product price is required."); 
if(ModelState.IsValid) { 
var updateQueryString = 
"UPDATE Product SET Name=@0, Description=@1, Price=@2 WHERE Id=@3" ; 
db.Execute(updateQueryString, Name, Description, Price, ProductId); 
Response.Redirect(@Href("~/EditProducts")); 
<!DOCTYPE html> 
<html> 
<head> 
<title>Add Products</title> 
<style type="text/css"> 
label { float: left; width: 8em; text-align: right; 
margin-right: 0.5em;} 
fieldset { padding: 1em; border: 1px solid; width: 35em;} 
legend { padding: 2px 4px;  border: 1px solid; font-weight: bold;} 
.validation-summary-errors {font-weight:bold; color:red; font-size:11pt;} 
</style> 
</head> 
<body> 
<h1>Update Product</h1> 
@Html.ValidationSummary("Errors with your submission:") 
<form method="post" action=""> 
<fieldset> 
<legend>Update Product</legend> 
<div> 
<label>Name:</label> 
<input name="Name" type="text" size="50" value="@Name" /> 
</div> 
<div> 
<label>Description:</label> 
<input name="Description" type="text" size="50" 
value="@Description" /> 
</div> 
<div> 
<label>Price:</label> 
<input name="Price" type="text" size="50" value="@Price" /> 
</div> 
<div> 
<label>&nbsp;</label> 
<input type="submit" value="Update" class="submit" /> 
</div> 
ASP.NET Web Pages Using The Razor Syntax 
Chapter 5 – Working with Data 
83 
</fieldset> 
</form> 
</body> 
</html>
The body of the page contains an HTML form where a product is displayed and where users can 
edit it. To get the product to display, you use this SQL statement: 
SELECT * FROM Product WHERE Id=@0
This will select the product whose ID matches the value that's passed in the 
@0
parameter. 
(Because Id is the primary key and therefore must be unique, only one product record can ever 
be selected this way.) To get the ID value to pass to this 
Select
statement, you can read the 
value that's passed to the page as part of the URL, using the following syntax: 
var ProductId  = UrlData[0];
To actually fetch the product record, you use the 
QuerySingle
method, which will return just one 
record: 
var row = db.QuerySingle(selectQueryString, ProductId);
The single row is returned into the 
row
variable. You can get data out of each column and assign 
it to local variables like this: 
var Name = row.Name; 
var Description = row.Description; 
var Price = row.Price;
In the markup for the form, these values are displayed automatically in individual text boxes by 
using embedded code like the following: 
<input name="Name" type="text" size="50" value="@Name" /> 
That part of the code displays the product record to be updated. Once the record has been 
displayed, the user can edit individual columns. 
When the user submits the form by clicking the Update button, the code in the 
if(IsPost)
block 
runs. This gets the user's values from the 
Request
object, stores the values in variables, and 
validates that each column has been filled in. If validation passes, the code creates the following 
SQL Update statement: 
UPDATE Product SET Name=@0, Description=@1, Price=@2, WHERE ID=@3
In a SQL 
Update
statement, you specify each column to update and the value to set it to. In this 
code, the values are specified using the parameter placeholders 
@0
@1
@2
, and so on. (As noted 
earlier, for security, you should always pass values to a SQL statement by using parameters.) 
ASP.NET Web Pages Using The Razor Syntax 
Chapter 5 – Working with Data 
84 
When you call the 
db.Execute
method, you pass the variables that contain the values in the 
order that corresponds to the parameters in the SQL statement: 
db.Execute(updateQueryString, Name, Description, Price, ProductId);
After the 
Update
statement has been executed, you call the following method in order to 
redirect the user back to the edit page: 
Response.Redirect(@Href("~/EditProducts"));
The effect is that the user sees an updated listing of the data in the database and can edit 
another product. 
6.
Save the page. 
7.
Run the EditProducts.cshtml page (not the update page) and then click Edit to select a product 
to edit. The UpdateProducts.cshtml page is displayed, showing the record you selected. 
8.
Make a change and click Update. The products list is shown again with your updated data. 
Deleting Data in a Database
This section shows how to let users delete a product from the Product database table. The example 
consists of two pages. In the first page, users select a record to delete. The record to be deleted is then 
displayed in a second page that lets them confirm that they want to delete the record. 
Important   In a production website, you typically restrict who's allowed to make changes to the 
data. For information about how to set up membership and about ways to authorize user to 
perform tasks on the site, see Chapter 16 - Adding Security and Membership
1.
In the website, create a new CSHTML file named ListProductsForDelete.cshtml. 
2.
Replace the existing markup with the following: 
@{ 
var db = Database.Open("SmallBakery"); 
var selectQueryString = "SELECT * FROM Product ORDER BY Name"; 
<!DOCTYPE html> 
<html> 
<head> 
<title>Delete a Product</title> 
ASP.NET Web Pages Using The Razor Syntax 
Chapter 5 – Working with Data 
85 
<style> 
table, th, td { 
border: solid 1px #bbbbbb; 
border-collapse: collapse; 
padding: 2px; 
</style> 
</head> 
<body> 
<h1>Delete a Product</h1> 
<form method="post" action="" name="form"> 
<table border="1"> 
<thead> 
<tr> 
<th>&nbsp;</th> 
<th>Name</th> 
<th>Description</th> 
<th>Price</th> 
</tr> 
</thead> 
<tbody> 
@foreach (var row in db.Query(selectQueryString)) { 
<tr> 
<td><a href="@Href("~/DeleteProduct", row.Id)">Delete</a></td> 
<td>@row.Name</td> 
<td>@row.Description</td> 
<td>@row.Price</td> 
</tr> 
</tbody> 
</table> 
</form> 
</body> 
</html>
This page is similar to the EditProducts.cshtml page from earlier. However, instead of displaying 
an Edit link for each product, it displays a Delete link. The Delete link is created using the 
following embedded code in the markup: 
<a href="@Href("~/DeleteProduct", row.Id)">Delete</a>
This creates a URL that looks like this when users click the link: 
http://<server>/DeleteProduct/4 
The URL calls a page named DeleteProduct.cshtml (which you'll create next) and passes it the ID 
of the product to delete (here, 4). 
3.
Save the file, but leave it open. 
4.
Create another CHTML file named DeleteProduct.cshtml and replace the existing content with 
the following: 
@{ 
var db = Database.Open("SmallBakery"); 
ASP.NET Web Pages Using The Razor Syntax 
Chapter 5 – Working with Data 
86 
var ProductId = UrlData[0]; 
if (ProductId.IsEmpty()) { 
Response.Redirect(@Href("~/ListProductsForDelete")); 
var prod = db.QuerySingle("SELECT * FROM PRODUCT WHERE ID = @0", ProductId); 
if( IsPost && !ProductId.IsEmpty()) { 
var deleteQueryString = "DELETE FROM Product WHERE Id=@0"; 
db.Execute(deleteQueryString, ProductId); 
Response.Redirect("~/ListProductsForDelete"); 
<!DOCTYPE html> 
<html 
<head> 
<title>Delete Product</title> 
</head> 
<body> 
<h1>Delete Product - Confirmation</h1> 
<form method="post" action="" name="form"> 
<p>Are you sure you want to delete the following product?</p> 
<p>Name: @prod.Name <br /> 
Description: @prod.Description <br /> 
Price: @prod.Price</p> 
<p><input type="submit" value="Delete" /></p> 
</form> 
</body> 
</html>
This page is called by ListProductsForDelete.cshtml and lets users confirm that they want to 
delete a product. To list the product to be deleted, you get the ID of the product to delete from 
the URL using the following code: 
var ProductId = UrlData[0];
The page then asks the user to click a button to actually delete the record. This is an important 
security measure: when you perform sensitive operations in your website like updating or 
deleting data, these operations should always be done using a POST operation, not a GET 
operation. If your site is set up so that a delete operation can be performed using a GET 
operation, anyone can pass a URL like http://<server>/DeleteProduct/4 and delete anything they 
want from your database. By adding the confirmation and coding the page so that the deletion 
can be performed only by using a POST, you add a measure of security to your site. 
The actual delete operation is performed using the following code, which first confirms that this 
is a post operation and that the ID isn't empty: 
if( IsPost && !ProductId.IsEmpty()) { 
var deleteQueryString = "DELETE FROM Product WHERE Id=@0"; 
db.Execute(deleteQueryString, ProductId); 
Response.Redirect("~/ListProductsForDelete"); 
}
Documents you may be interested
Documents you may be interested