Sunday, February 23, 2020

Project Structure:

framework : 4.5
Dapper : 1.50.2.0

---------------------------------------------------------------------------------------------------------------


Dapper class:

1. Install Dapper from Nuget using this command..


Install-Package Dapper

2. configure connection string in your web.config..

add name="StudentDBContext" connectionString="Data Source=DELL-PC;Initial Catalog=Student;User ID=sa;Password=software123" providerName="System.Data.SqlClient"

3. Use this code for Dapper


public class DapperExecute
    {
        public string ConnectionString { get; set; }
        public DapperExecute()
        {
            ConnectionString = ConfigurationManager.ConnectionStrings["ProductDBContext"].ConnectionString;
        }

        public ICollection<T> Execute<T>(string Statement, dynamic Parameters = null, CommandType commandtype = CommandType.StoredProcedure)
        {
            var result = (dynamic)null;
            try
            {
                using (var connection = new SqlConnection(ConnectionString))
                {
                    connection.Open();
                    result = SqlMapper.Query<T>(connection, Statement, Parameters, null, true, 0, commandtype);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return result;
        }

    }
------------------------------------------------------------------------

SP:

CREATE PROCEDURE [dbo].[usp_CRUD_Product]

@qType AS NVARCHAR(50)='List',
@searchText AS NVARCHAR(max)=NULL,
@Id AS INT=NULL,
@Name AS NVARCHAR(max)=NULL,
@Qty AS INT=null
AS
BEGIN
SET NOCOUNT ON;

IF(@qType='List')
BEGIN
IF(@searchText='')
BEGIN
SET @searchText=NULL;
END
SELECT * FROM dbo.Products WHERE (@searchText IS NULL OR [Name] LIKE '%'+@searchText+'%')
END
ELSE IF(@qType='Insert')
BEGIN
IF NOT EXISTS(SELECT ProductId FROM dbo.Products WHERE [Name]=@Name)
BEGIN
INSERT INTO dbo.Products
(
[Name],
Qty
)
VALUES
(   @Name, -- Name - nvarchar(200)
@Qty    -- Qty - int
)
SELECT @@IDENTITY
END
        ELSE
BEGIN
SELECT -1
END
END
ELSE IF (@qType='Update')
BEGIN
IF NOT EXISTS(SELECT ProductId FROM dbo.Products WHERE ProductId&lt;&gt;@Id AND [Name]=@Name)
BEGIN
UPDATE dbo.Products SET [Name]=@Name, Qty=@Qty WHERE ProductId=@Id
SELECT @Id
END
ELSE
BEGIN
SELECT -1
END
END
 
ELSE IF (@qType='Delete')
BEGIN

DELETE FROM dbo.Products WHERE ProductId=@Id
END

ELSE IF (@qType='GetById')
BEGIN
SELECT * FROM dbo.Products WHERE ProductId=@Id
END

END

-----------------------------------------------------------------------------------
Product.cs:

 public class Product

    {

        public int ProductId { get; set; }

        [Required]
        public string Name { get; set; }

        [Required]
        public int Qty { get; set; }

    }

-----------------------------------------------------------------------------------
Controller:

public class ProductController : Controller
    {
        DapperExecute de = new DapperExecute();
        // GET: Product
        public ActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public JsonResult List(string searchText)
        {
            var product = this.de.Execute<Product>("usp_CRUD_Product", new
            {
                qType = "List",
                searchText = searchText
            });
            return Json(product, JsonRequestBehavior.AllowGet);
        }

        [HttpGet]
        public JsonResult GetById(int Id)
        {
            var product = this.de.Execute<Product>("usp_CRUD_Product", new
            {
                qType = "GetById",
                Id = Id
            });
            return Json(product.FirstOrDefault(), JsonRequestBehavior.AllowGet);
        }

        [HttpPost]
        // [ValidateAntiForgeryToken]
        public JsonResult SaveProduct(Product product)
        {
            int result = 0;
            if (product.ProductId > 0)
            {
                var updated = this.de.Execute<int>("usp_CRUD_Product", new
                {
                    qType = "Update",
                    Id = product.ProductId,
                    Name = product.Name,
                    Qty = product.Qty

                });
                result = updated.FirstOrDefault();
            }
            else
            {
                var inserted = this.de.Execute<int>("usp_CRUD_Product", new
                {
                    qType = "Insert",
                    Name = product.Name,
                    Qty = product.Qty
                });
                result = inserted.FirstOrDefault();
            }
            return Json(result, JsonRequestBehavior.AllowGet);
        }

        [HttpPost]
        //[ValidateAntiForgeryToken]
        public JsonResult DeleteProduct(int Id)
        {
            var deleted = this.de.Execute<int>("usp_CRUD_Product", new
            {
                qType = "Delete",
                Id = Id
            });
            return Json(true, JsonRequestBehavior.AllowGet);
        }

    }

--------------------------------------------------------------------------------------------

Product.js:




$(document).ready(function () {
    loadData();
});


function loadData() {
    $.ajax({
        url: "/Product/List/?searchText=" + $("#txtSearch").val(),
        type: "GET",
        contentType: "application/json",
        dataType: "json",
        success: function (result) {
            var html = '';
            debugger;
            $.each(result, function (key, item) {
                html += '<tr>';
                html += '<td>' + item.Name + '</td>';
                html += '<td>' + item.Qty + '</td>';
                html += '<td><a class="btn btn-primary" href="javascript:void(0);" onclick="return GetById(' + item.ProductId + ')">Edit</a> | <a class="btn btn-primary" href="javascript:void(0);" onclick="DeleteProduct(' + item.ProductId + ')">Delete</a></td>';
                html += '</tr>';
            });
            $('.tbody').html(html);
        },
        error: function (errormessage) {
            alert(errormessage.responseText);
        }
    });
};

function GetById(Id) {
    debugger
    $.ajax({
        url: "/Product/GetById/" + Id,
        typr: "GET",
        contentType: "application/json;charset=UTF-8",
        dataType: "json",
        success: function (result) {
            debugger;
            $('#hdnProductId').val(result.ProductId);
            $('#txtName').val(result.Name);
            $('#txtQty').val(result.Qty);
            $('#AddProduct').modal('show');
        },
        error: function (errormessage) {
            alert(errormessage.responseText);
        }
    });
    return false;
};

function SaveProduct() {
    var isValid = Validate();

    if (!isValid) {
        return false;
    }

    var obj = {
        ProductId: $("#hdnProductId").val(),
        Name: $("#txtName").val(),
        Qty: $("#txtQty").val()
    };

    $.ajax({
        url: "/Product/SaveProduct",
        data: JSON.stringify(obj),
        type: "POST",
        contentType: "application/json;charset=utf-8",
        dataType: "json",
        beforeSend: function (request) {
            request.setRequestHeader("__RequestVerificationToken", $('[name="__RequestVerificationToken"]').val());
        },
        success: function (result) {
            if (result == -1) {
                alert("Product already exist with same name");
            }
            else {
                $("#txtSearch").val("");
                loadData();
                $('#AddProduct').modal('hide');
                Clearcontroll();
            }
        },
        error: function (errormessage) {
            alert(errormessage.responseText);
        }
    });
}


function DeleteProduct(ID) {
    var ans = confirm("Are you sure you want to delete this Product?");
    if (ans) {
        $.ajax({
            url: "/Product/DeleteProduct/" + ID,
            type: "POST",
            contentType: "application/json;charset=UTF-8",
            dataType: "json",
            success: function (result) {
                loadData();
                alert("Product deleted successfully");
            },
            error: function (errormessage) {
                alert(errormessage.responseText);
            }
        });
    }
}

function Clearcontroll() {
    $("#txtName").val("");
    $("#txtQty").val("");
    $("#hdnProductId").val("");
    $("#txtName").css("background-color", "white");
    $("#txtQty").css("background-color", "white");
}

function Validate() {
    var isValid = true;

    if ($("#txtName").val().trim() == "") {
        $("#txtName").css("background-color", "red");
        isValid = false;
    }
    else if ($("#txtQty").val().trim() == "") {
        $("#txtQty").css("background-color", "red");
        isValid = false;
    }

    return isValid;
}


----------------------------------------------------------------------------------------

Product.cshtml:

 @{
    ViewBag.Title = "Index";
}

<script src="~/Scripts/jquery-3.3.1.js"></script>
<script src="~/Js/Products.js"></script>
@Html.AntiForgeryToken();
<div class="container">
    <h2>Product List</h2>
    <span style="float:left;margin-right:5px;">
        <input type="text" id="txtSearch" name="txtSearch" class="form-control" />
    </span>
    <span style="float:left;"><button id="btnSearch"  name="btnSearch" class="btn btn-primary" onclick="loadData();">Search</button> <button id="btnAdd" name="btnAdd" class="btn btn-primary" data-toggle="modal" data-target="#AddProduct" onclick="return Clearcontroll();">Add Product</button></span>
    <table class="table table-hover">
        <thead>
            <tr>
                <th>
                    Name
                </th>
                <th>
                    Qty
                </th>
                <th>
                    Action
                </th>
            </tr>
        </thead>
        <tbody class="tbody">
        </tbody>
    </table>
</div>

<div class="modal fade" id="AddProduct" tabindex="-1" role="dialog" aria-labelledby="lblHeader" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button id="btnClose" class="close" data-dismiss="modal">X</button>
                <h4 class="modal-title" id="lblHeader">Save Product</h4>
            </div>
            <div class="modal-body">
                <form id="productForm">
                    <input type="hidden" id="hdnProductId" />
                    <div class="form-group">
                        <label for="Name">Name</label>
                        <input type="text" name="txtName" id="txtName" value="" class="form-control" placeholder="Name" />
                    </div>
                    <div class="form-group">
                        <label for="Qty">Qty</label>
                        <input type="text" name="txtQty" id="txtQty" value="" class="form-control" placeholder="Quantity" />
                    </div>
                </form>
                <div class="modal-footer">
                    <button id="btnSave" name="btnSave" class="btn btn-primary" onclick="return SaveProduct();">Save</button>
                </div>
            </div>
        </div>
    </div>
</div>

Sunday, February 26, 2017

Dapper - Simple Example

1. Install Dapper from Nuget using this command..


Install-Package Dapper

2. configure connection string in your web.config..

add name="StudentDBContext" connectionString="Data Source=DELL-PC;Initial Catalog=Student;User ID=sa;Password=software123" providerName="System.Data.SqlClient"

3. Use this code for Dapper

public class DapperExecute
    {
        public string ConnectionString { get; set; }
        public DapperExecute()
        {
            ConnectionString = ConfigurationManager.ConnectionStrings["StudentDBContext"].ConnectionString;
        }

        public ICollection Execute(string Statement, dynamic Parameters = null, CommandType commandtype = CommandType.StoredProcedure)
        {
            var result = (dynamic)null;
            try
            {
                using (var connection = new SqlConnection(ConnectionString))
                {
                    connection.Open();
                    result = SqlMapper.Query(connection, Statement, Parameters, null, true, 0, commandtype);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return result;
        }

    }

4. Call using this Syntex....

 DapperExecute de = new DapperExecute();

 var student = de.Execute("usp_GetStudent", new
            {
                studentID = id
            }).FirstOrDefault();

Note: Use "FirstOrDefault()" only when you want to get only one record. If you want to get List, please remove this.

Thursday, May 10, 2012

Repeater Basics

Repeater in not easy like gridview.

in .aspx file :



               
                   

                       

                           

                           

                           

                           

                           

                           

                           

                           

                       

               
               
                   

                       

                       

                       

                       

                       

                       

                       

                       

                   

               
               
                   

                                  Edit
                           

                                 Delete
                           

                                Company Name
                           

                                Legal Name
                           

                                Owner Name
                           

                                Address1
                           

                                Address2
                           

                                Address3
                           

                           
                                ImageUrl="~/images/edit.png" runat="server" />
                       

                           
                       

                            <%# DataBinder.Eval(Container, "DataItem.Company_Name")%>
                       

                            <%# DataBinder.Eval(Container, "DataItem.Legal_Name") %>
                       

                            <%# DataBinder.Eval(Container, "DataItem.Owner_Name")%>
                       

                            <%# DataBinder.Eval(Container, "DataItem.Address1")%>
                       

                            <%# DataBinder.Eval(Container, "DataItem.Address2")%>
                       

                            <%# DataBinder.Eval(Container, "DataItem.Address3")%>
                       

               
           


Item command Event :


protected void rptStudent_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Delete")
        {
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "msg", "alert('Delete Command');", true);
        }
        else if (e.CommandName == "Edit")
        {
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "msg", "alert('Edit Command');", true);
        }
    }

Item Databound Event :


   protected void rptStudent_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Response.Write(((Label)(e.Item.FindControl("lblID"))).Text);
           
        }
    }
}




Friday, April 6, 2012

Use Aggregate function without group By clause...

If you want to use Aggregate function in sql queries your query looks like this

Select StudentID, SUM(Mark) as Total  from student Group By StudentID,Mark

but you can write your query like...

Select StudentID, SUM(Mark) Over()  from student

Crystal Report with dynamic coding for Generating .PDF file.

 Add Name Spaces and create object of .xsd file and Report Document in global section.than do the code like this...

private void fill_report()
    {
        try
        {
            int InvoiceId;
            int BookingId;
            View_All_Invoice_Room all_invoice = new View_All_Invoice_Room();
            ReportDocument rd = new ReportDocument();
            DataTable dtt = new DataTable();
            DataTable dtroomservice = new DataTable();
            DataTable dttoors = new DataTable();
            DataTable dtlaundry = new DataTable();
            DataTable dtinternet = new DataTable();
            rd.Load(Server.MapPath("~/") + "Invoice_Rpt" + "\\" + "View_All_Invoice_Room.rpt");

            List objlist = new List();
            List lstroom_service = new List();
            List lstroom = new List();
            string PdfName = string.Empty;
            DataTable dthotel = new DataTable();


            InvoiceId = Convert.ToInt32(ViewState["invoiceid"].ToString());

            dtt = objlist.queryList("SELECT tblInvoice.CustomerName, convert(varchar,tblInvoice.CheckOutDate,101) AS CheckOutDate,convert(varchar,tblBookingList.CheckInDate,101) AS CheckInDate, tblInvoice.BookingID, tblRoom.RoomNo, tblFinalInvoicePayment.RoomTotal, " +
                          "tblFinalInvoicePayment.Advance,tblFinalInvoicePayment.AddextaCharges,tblFinalInvoicePayment.DeductCharges, tblFinalInvoicePayment.GuestAdvance, tblFinalInvoicePayment.RoomServices, " +
                          "tblFinalInvoicePayment.LaundryServices, tblFinalInvoicePayment.InternetServices, tblFinalInvoicePayment.ToorsServices, " +
                          "tblFinalInvoicePayment.FinalTotal, tblInvoice.InvoiceID, tblCustomer.CustomerName AS CustName, tblCustomer.CompanyName, tblCustomer.Address, " +
                          "tblCustomer.EmailId, tblCustomer.MobileNo " +
                          "FROM tblhoteldetails INNER JOIN " +
                          "tblCustomer ON tblhoteldetails.HotelID = tblCustomer.HotelID INNER JOIN " +
                          "tblBookingDetail ON tblhoteldetails.HotelID = tblBookingDetail.HotelID INNER JOIN " +
                          "tblBookingList ON tblhoteldetails.HotelID = tblBookingList.HotelID INNER JOIN " +
                          "tblFinalInvoicePayment ON tblhoteldetails.HotelID = tblFinalInvoicePayment.HotelID INNER JOIN " +
                          "tblRoom ON tblhoteldetails.HotelID = tblRoom.HotelID AND tblBookingDetail.RoomID = tblRoom.RoomID INNER JOIN " +
                          "tblInvoice ON tblhoteldetails.HotelID = tblInvoice.HotelID AND tblFinalInvoicePayment.InvoiceID = tblInvoice.InvoiceID AND " +
                          "tblBookingDetail.BookingID = tblInvoice.BookingID AND tblCustomer.CustomerName = tblInvoice.CustomerName AND " +
                          "tblBookingList.BookingID = tblInvoice.BookingID " +
                          "WHERE tblInvoice.InvoiceID = " + InvoiceId + "");

            BookingId = Convert.ToInt32(dtt.Rows[0]["BookingID"].ToString());

            DataTable dtroom = lstroom.queryList("select R.RoomNo from tblBookingDetail AS BD,tblRoom as R where BD.RoomID=R.RoomID And bd.BookingID=" + BookingId + "");
            for (int j = 0; j < dtroom.Rows.Count; j++)
            {
                dtroomservice = lstroom_service.queryList("SELECT CONVERT(VARCHAR(50),ri.[ServiceDate],101) AS ServiceDate,ri.[RoomNo],rs.[Menu],rs.[ServiceName],CAST(rs.RoomServiceID AS Varchar(20)) AS RoomServiceID,rs.[Quantity],CAST(rs.[Rate] AS varchar(12)) AS Rate ,CAST(rs.[TotalAmount] AS varchar(12)) AS TotalAmount  FROM [tblRoomInform] AS ri INNER JOIN [tblRoomServices] AS rs ON ri.[RoomInformID] = rs.[RoomInformID] WHERE ri.RoomNo='" + dtroom.Rows[j]["RoomNo"].ToString() + "' AND ri.[BookingID]=" + BookingId + "");
            }
            if (dtroomservice.Rows.Count > 0)
            {
                for (int rs = 0; rs < dtroomservice.Rows.Count; rs++)
                {
                    DataRow rs_dr = all_invoice.DTAllServices.NewRow();
                    rs_dr["RsInvoiceId"] = dtroomservice.Rows[rs]["RoomServiceID"];
                    rs_dr["RsServiceDate"] = dtroomservice.Rows[rs]["ServiceDate"];
                    rs_dr["RsRoomNo"] = dtroomservice.Rows[rs]["RoomNo"];
                    rs_dr["RsMenu"] = dtroomservice.Rows[rs]["Menu"];
                    rs_dr["RsQuentity"] = dtroomservice.Rows[rs]["Quantity"];
                    rs_dr["RsRate"] = dtroomservice.Rows[rs]["Rate"];
                    rs_dr["RsServiceDate"] = dtroomservice.Rows[rs]["ServiceDate"];
                    rs_dr["RsTotal"] = dtroomservice.Rows[rs]["TotalAmount"];

                    all_invoice.DTAllServices.Rows.Add(rs_dr);
                }

            }
            else
            {
                //DataRow rs_dr = all_invoice.DTAllServices.NewRow();
                //rs_dr["RsInvoiceId"] = "Nill";
                //rs_dr["RsServiceDate"] = "Nill";
                //rs_dr["RsRoomNo"] = "Nill";
                //rs_dr["RsMenu"] = "Nill";
                //rs_dr["RsQuentity"] = Convert.ToInt32(0);
                //rs_dr["RsRate"] = Convert.ToDecimal(0);
                //rs_dr["RsServiceDate"] = "Nill";
                //rs_dr["RsTotal"] = Convert.ToDecimal(0);

                //all_invoice.DTAllServices.Rows.Add(rs_dr);
            }

            List lstoors = new List();

            dttoors = lstoors.queryList("SELECT ROW_NUMBER()OVER(ORDER BY li.CarCheckInID) AS SrNo,CAST(li.CarCheckInID AS varchar(20)) AS CarCheckInID, li.BookingID,ld.CarName,ld.StartTime,ld.EndTime,ld.StartKm,ld.EndKm,CAST(ld.Rate AS varchar(12)) AS Rate,CONVERT(VARCHAR(20),ld.CurrentDate,101) AS CurrentDate FROM tblCarCheckIn AS li INNER JOIN tblCarCheckInDetails AS ld ON li.CarCheckInID=ld.CarCheckInID WHERE li.BookingID=" + BookingId + "");

            if (dttoors.Rows.Count > 0)
            {
                for (int tt = 0; tt < dttoors.Rows.Count; tt++)
                {
                    DataRow tt_dr = all_invoice.DTTourTrav.NewRow();
                    tt_dr["TTInvoiceId"] = dttoors.Rows[0]["CarCheckInID"];
                    tt_dr["TTServices"] = dttoors.Rows[tt]["CurrentDate"];
                    tt_dr["TTCarName"] = dttoors.Rows[tt]["CarName"];
                    tt_dr["TTStartTime"] = dttoors.Rows[tt]["StartTime"];
                    tt_dr["TTEndTime"] = dttoors.Rows[tt]["EndTime"];
                    tt_dr["TTStartKM"] = dttoors.Rows[tt]["StartKm"];
                    tt_dr["TTEndKM"] = dttoors.Rows[tt]["EndKm"];
                    tt_dr["TTTotal"] = dttoors.Rows[tt]["Rate"];
                    all_invoice.DTTourTrav.Rows.Add(tt_dr);
                }
            }
            else
            {
                //DataRow tt_dr = all_invoice.DTTourTrav.NewRow();
                //tt_dr["TTInvoiceId"] = "Nill";
                //tt_dr["TTServices"] = "Nill";
                //tt_dr["TTCarName"] = "Nill";
                //tt_dr["TTStartTime"] = "Nill";
                //tt_dr["TTEndTime"] = "Nill";
                //tt_dr["TTStartKM"] = Convert.ToInt32(0);
                //tt_dr["TTEndKM"] = Convert.ToInt32(0);
                //tt_dr["TTTotal"] = Convert.ToDecimal(0);
                //all_invoice.DTTourTrav.Rows.Add(tt_dr);

            }

            List lslaundry = new List();

            dtlaundry = lslaundry.queryList("SELECT ROW_NUMBER()OVER(ORDER BY li.LaundryListID) AS SrNo,CAST(li.LaundryListID AS varchar(20)) AS LaundryListID, li.BookingID,ld.RoomNo,ld.LItemName,CAST(ld.LRate AS varchar(12)) AS LRate,ld.LQuantity,CAST(ld.TotalAmount AS varchar(12)) AS TotalAmount,CONVERT(VARCHAR(20),ld.CurrentDate,101) AS CurrentDate FROM tblLaundryList AS li INNER JOIN tblLaundryDetails AS ld ON li.LaundryListID=ld.LaundryListID WHERE  li.BookingID=" + BookingId + "");
            if (dtlaundry.Rows.Count > 0)
            {
                for (int ld = 0; ld < dtlaundry.Rows.Count; ld++)
                {
                    DataRow ld_dr = all_invoice.DTAllLaundry.NewRow();
                    ld_dr["LdInvoiceId"] = dtlaundry.Rows[0]["LaundryListID"];
                    ld_dr["LdServiceDate"] = dtlaundry.Rows[ld]["CurrentDate"];
                    ld_dr["LdRoomNo"] = dtlaundry.Rows[ld]["RoomNo"];
                    ld_dr["LdItemName"] = dtlaundry.Rows[ld]["LItemName"];
                    ld_dr["LdQuentity"] = dtlaundry.Rows[ld]["LQuantity"];
                    ld_dr["LdRate"] = dtlaundry.Rows[ld]["LRate"];
                    ld_dr["LdTotal"] = dtlaundry.Rows[ld]["TotalAmount"];

                    all_invoice.DTAllLaundry.Rows.Add(ld_dr);
                }
            }
            else
            {
                //DataRow ld_dr = all_invoice.DTAllLaundry.NewRow();
                //ld_dr["LdInvoiceId"] = "Nill";
                //ld_dr["LdServiceDate"] = "Nill";
                //ld_dr["LdRoomNo"] = "Nill";
                //ld_dr["LdItemName"] = "Nill";
                //ld_dr["LdQuentity"] = Convert.ToInt32(0);
                //ld_dr["LdRate"] = Convert.ToDecimal(0);
                //ld_dr["LdTotal"] = Convert.ToDecimal(0);

                //all_invoice.DTAllLaundry.Rows.Add(ld_dr);
            }
            List lsinternet = new List();

            dtinternet = lsinternet.queryList("SELECT ROW_NUMBER()OVER(ORDER BY li.InternetListID) AS SrNo,CAST(li.InternetListID AS varchar(20)) AS InternetListID, li.BookingID,ld.RoomNo,ld.IItemName,CAST(ld.IRate AS varchar(12)) AS IRate,ld.IQuantity,CAST(ld.TotalAmount AS varchar(12)) AS TotalAmount,CONVERT(VARCHAR(20),ld.CurrentDate,101) AS CurrentDate FROM tblInternetList AS li INNER JOIN tblInternetDetail AS ld ON li.InternetListID=ld.InternetListID WHERE li.BookingID=" + BookingId + "");

            if (dtinternet.Rows.Count > 0)
            {
                for (int it = 0; it < dtinternet.Rows.Count; it++)
                {
                    DataRow it_dr = all_invoice.DTAllInterTele.NewRow();
                    it_dr["ITInvoiceId"] = dtinternet.Rows[0]["InternetListID"];
                    it_dr["ITServiceDate"] = dtinternet.Rows[it]["CurrentDate"];
                    it_dr["ITRoomNo"] = dtinternet.Rows[it]["RoomNo"];
                    it_dr["ITItemName"] = dtinternet.Rows[it]["IItemName"];
                    it_dr["ITHour"] = dtinternet.Rows[it]["IQuantity"];
                    it_dr["ITRate"] = dtinternet.Rows[it]["IRate"];
                    it_dr["ITTotal"] = dtinternet.Rows[it]["TotalAmount"];

                    all_invoice.DTAllInterTele.Rows.Add(it_dr);
                }
            }
            else
            {
                //DataRow it_dr = all_invoice.DTAllInterTele.NewRow();
                //it_dr["ITInvoiceId"] = "Nill";
                //it_dr["ITServiceDate"] = "Nill";
                //it_dr["ITRoomNo"] = "Nill";
                //it_dr["ITItemName"] = "Nill";
                //it_dr["ITHour"] = Convert.ToInt32(0);
                //it_dr["ITRate"] = Convert.ToDecimal(0);
                //it_dr["ITTotal"] = Convert.ToDecimal(0);
                //all_invoice.DTAllInterTele.Rows.Add(it_dr);
            }
            if (dtt.Rows.Count > 0)
            {
                for (int i = 0; i < dtt.Rows.Count; i++)
                {
                    List objhotel = new List();
                    dthotel = objhotel.queryList("select  HotelName,Address,City,Currencies,tblcountry.countryname,tblstate.statename from tblHotelDetails h left join tblcountry on tblcountry.countryid=h.countryid left join tblstate on tblstate.stateid=h.stateid where HotelID= '" + hotelid + "'");
                    DataRow dr = all_invoice.DTAllInvoice.NewRow();
                    dr["HotelName"] = dthotel.Rows[0]["HotelName"];
                    dr["HAddress"] = dthotel.Rows[0]["Address"];
                    dr["HCity"] = dthotel.Rows[0]["City"];
                    dr["HState"] = dthotel.Rows[0]["statename"];
                    dr["HCountry"] = dthotel.Rows[0]["countryname"];
                    dr["InvoiceId"] = Convert.ToInt32(InvoiceId);
                    dr["BookingId"] = dtt.Rows[0]["BookingID"];
                    dr["CheckOutDate"] = dtt.Rows[0]["CheckOutDate"];
                    dr["CheckInDate"] = dtt.Rows[0]["CheckInDate"];
                    dr["RoomNo"] = dtroom.Rows[0]["RoomNo"];
                    //List lsroom = new List();
                    //DataTable dtroom = lsroom.queryList("SELECT R.RoomNo FROM tblBookingDetail AS BD INNER JOIN tblRoom AS R ON BD.RoomID = R.RoomID WHERE BD.BookingID = '" + BookingId + "'");
                    for (int r = 1; r < dtroom.Rows.Count; r++)
                    {
                        dr["RoomNo"] = dr["RoomNo"] + ", " + dtroom.Rows[r]["RoomNo"];
                    }
                    dr["RoomAmt"] = dtt.Rows[0]["RoomTotal"];
                    dr["AdvanceAmt"] = dtt.Rows[0]["Advance"];
                    dr["RoomServicesAmt"] = dtt.Rows[0]["RoomServices"];
                    dr["LaundryAmt"] = dtt.Rows[0]["LaundryServices"];
                    dr["Inter-teleAmt"] = dtt.Rows[0]["InternetServices"];
                    dr["Tours-TravAmt"] = dtt.Rows[0]["ToorsServices"];
                    dr["CustAddress"] = dtt.Rows[0]["Address"];
                    dr["CustName"] = dtt.Rows[0]["CustomerName"];
                    dr["CustMobile"] = dtt.Rows[0]["MobileNo"];
                    dr["CustEmail"] = dtt.Rows[0]["EmailId"];
                    dr["CustCompanyName"] = dtt.Rows[0]["CompanyName"];
                    dr["extraamt"] = dtt.Rows[0]["AddextaCharges"];
                    dr["deductamt"] = dtt.Rows[0]["DeductCharges"];

                    all_invoice.DTAllInvoice.Rows.Add(dr);
                }

            }

            rd.SetDataSource(all_invoice);
            rd.OpenSubreport("RS_All_Invoice_Room.rpt").SetDataSource(all_invoice);
            rd.OpenSubreport("LD_All_Invoice_Room.rpt").SetDataSource(all_invoice);
            rd.OpenSubreport("IT_All_Invoice_Room.rpt").SetDataSource(all_invoice);
            rd.OpenSubreport("TT_All_Invoice_Room.rpt").SetDataSource(all_invoice);

            TextObject txtadamtr = (TextObject)rd.ReportDefinition.ReportObjects["txtadamt"];
            TextObject txtpendingamtr = (TextObject)rd.ReportDefinition.ReportObjects["txtpendingamt"];
            TextObject txtextrachrgr = (TextObject)rd.ReportDefinition.ReportObjects["txtexchrg"];
            TextObject txtdeductamtr = (TextObject)rd.ReportDefinition.ReportObjects["txtdeductamt"];

            TextObject txtrsgtotalr = (TextObject)rd.OpenSubreport("RS_All_Invoice_Room.rpt").ReportDefinition.ReportObjects["txtrsgtotal"];
            TextObject txtldgtotalr = (TextObject)rd.OpenSubreport("LD_All_Invoice_Room.rpt").ReportDefinition.ReportObjects["txtldgtotal"];
            TextObject txtitgtotalr = (TextObject)rd.OpenSubreport("IT_All_Invoice_Room.rpt").ReportDefinition.ReportObjects["txtitgtotal"];
            TextObject txtttgtotalr = (TextObject)rd.OpenSubreport("TT_All_Invoice_Room.rpt").ReportDefinition.ReportObjects["txtttgtotal"];

            txtadamtr.Text = dthotel.Rows[0]["Currencies"].ToString();
            txtpendingamtr.Text = dthotel.Rows[0]["Currencies"].ToString();
            txtextrachrgr.Text = dthotel.Rows[0]["Currencies"].ToString();
            txtdeductamtr.Text = dthotel.Rows[0]["Currencies"].ToString();

            txtrsgtotalr.Text = dthotel.Rows[0]["Currencies"].ToString();
            txtldgtotalr.Text = dthotel.Rows[0]["Currencies"].ToString();
            txtitgtotalr.Text = dthotel.Rows[0]["Currencies"].ToString();
            txtttgtotalr.Text = dthotel.Rows[0]["Currencies"].ToString();

            string Invoice_Folder = "Invoice_PDF";
            string ModuleName = "RoomManagement";
            string old =hotelid.ToString();
            bool isexist = System.IO.Directory.Exists(Server.MapPath("~/") + "\\" + Invoice_Folder + "\\" + old + "\\" + ModuleName);
            if (!isexist)
            {
                Directory.CreateDirectory(Server.MapPath("~/") + "\\" + Invoice_Folder + "\\" + old + "\\" + ModuleName);
            }

            PdfName = InvoiceId.ToString() + "FinalInvoice" + "_" + DateTime.Today.ToString("MM-dd-yyyy") + ".pdf";

            rd.ExportToDisk(ExportFormatType.PortableDocFormat, Server.MapPath("~/") + "\\" + Invoice_Folder + "\\" + old + "\\" + ModuleName + "\\" + PdfName);
            List lstpdf = new List();
            lstpdf.queryList("Update tblinvoice Set InvoiceImage='" + PdfName.ToString() + "' where InvoiceID=" + InvoiceId + " and HotelID=" + hotelid + "");
        }
        catch (Exception ex)
        {
            lblMsg.Text = ex.Message;
        }

    }