Friday, December 9, 2011

Learn Tutorial of Asp.net Page Life Cycle




Please visit my new Web Site WWW.Codedisplay.com



When a user send request to the Web server, the page passes a lot of events during initialization and disposal. Generally an Asp.net aspx page contains a lot of server side controls as well as HTML controls & user controls. Most of the developer does not bother the life cycle events. But its not a good practice because to be a good & knowledgeable developer or programmer you have to learn the Life Cycle of an Asp.net aspx page. Otherwise you will be failed to get advantage specially when developing user controls. It's also a common & crucial or vital question on Asp.net interview viva or written exam.

For better understanding I have divide the Sequential loading of page cycle in two ways as follows:

1. First time request of a page
2. Postback of a page



See the initial level summary from below:

Asp.net interview question page life cycle


First time request of a page:
1. Object Initialization: Creates instance of the server control. The initialization event can be overridden using the OnInit method. The event associated with the cycle is Page_Init. In this phase the page knows the types of objects and how many to create.

2. Loading: The instance of the control is loaded onto the page object in which it is defined. In this phase you can catch the objects through Javascript like objects visibility, width, height and value. The Load event can be overridden by calling OnLoad method. The event associated with the cycle is Page_Load.

3. PreRendering: Associated value of the control is assigned. This is the last time changes of objects to save into the viewstate. After the execution of the method controls value is locked for the viewstate. The PreRender step can be overridden using OnPreRender method. The event associated with the cycle is Page_PreRender.

4. Saving: The state values of the control is saved to the viewstate.The value is attached in the HTML tag which we found in the browser view source action menu. It can be overridden by calling SaveViewState method.

5. Rendering: In this page corresponding HTML tag of the controls will be created. It can be overridden by calling OnPreRender method. The event associated with the cycle is Page_Render.

6. Disposing: At this stage the pages objects will be disposed. Basically this is the cleanup stage. Close all files, DB connections in this stage.

7. Unloading: This is the final event in the life cycle of the server control. In this phase all server control instances will be destroyed. The event associated with the cycle is Page_UnLoad.


Postback of a page:
1. Initializing: Same as before.
2. Loading View State: In this stage controls are populated with the appropriate viewstate data.
3. Loading: Same as before.
4. Loading the postback data: In this phase updates the control state with the correct postback data.
5. PreRendering: Same as before.
6. Saving State: The change of control between the current request and the previous request of the page is saved. For each change, the corresponding event is raised. For example, if the text of a textbox is changed, the new text is saved and a text_change event is raised.
7. Rendering: Same as before.
8. Disposing: Same as before.
9. Unloading: Same as before.

Hope it will help you alot for preparing ASP.net interview viva.

Wednesday, December 7, 2011

The OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction : SQL SERVER ERROR




Please visit my new Web Site WWW.Codedisplay.com



In many Sql Server forum i found the error "The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction". That's why i am decided to describe this error with a solution that i have resolved yesterday. One simple solution is Sql Server has a service named "Distributed Transaction" which you need to ON to resolve this problem. But one disadvantage of this service is it will take memory space than usual. You have another simple solution which i want to share in the later part of this article.

Full Error:
[OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a].
Msg 7391, Level 16, State 1, Line 19
The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.

Reason:
Specially i found this error when i am trying to run a dynamic query to insert data into another server like below:
DECLARE @tbl VARCHAR(8)
SELECT @tbl=CONVERT(VARCHAR(8),DATEADD(day, (DATEDIFF (day, '19800104', getdate()) / 7) * 7, '19800104'),112)

DECLARE @sql nvarchar(2000);

SET @sql='select 
 account_id,
 sum(case when account_balance >=0  and account_balance <99 then 1 else 0 end) b_0to99,
 sum(case when account_balance >=100  and account_balance <499 then 1 else 0 end) b_100to499,
 sum(case when account_balance >=500  and account_balance <999 then 1 else 0 end) b_500to999,
 sum(case when account_balance >1000  then 1 else 0 end) b_g1000
from
 sdp_dedicated_stage_'+ @tbl +'
group by account_id
order by convert(integer,account_id)'

INSERT INTO [SQLDB\SQL100].[RA_CTL_SUMMARY].[dbo].FM_DA_TREND_ANALYSIS
EXEC SP_EXECUTESQL @sql

DROP TABLE #tmpDA
Solution:
First create a table definition within the scope and insert dynamic sql returned data into this table and then insert data into the remote server or another server table like below:
DECLARE @tbl VARCHAR(8)
SELECT @tbl=CONVERT(VARCHAR(8),DATEADD(day, (DATEDIFF (day, '19800104', getdate()) / 7) * 7, '19800104'),112)

CREATE TABLE #tmpDA(account_id int,b_0to99 bigint,b_100to499 bigint,b_500to999 bigint,b_g1000 bigint)

DECLARE @sql nvarchar(2000);

SET @sql='select 
 account_id,
 sum(case when account_balance >=0  and account_balance <99 then 1 else 0 end) b_0to99,
 sum(case when account_balance >=100  and account_balance <499 then 1 else 0 end) b_100to499,
 sum(case when account_balance >=500  and account_balance <999 then 1 else 0 end) b_500to999,
 sum(case when account_balance >1000  then 1 else 0 end) b_g1000
from
 sdp_dedicated_stage_'+ @tbl +'
group by account_id
order by convert(integer,account_id)'

INSERT #tmpDA
EXEC SP_EXECUTESQL @sql

INSERT INTO [SQLDB\SQL100].[RA_CTL_SUMMARY].[dbo].FM_DA_TREND_ANALYSIS
SELECT *,@tbl FROM #tmpDA

DROP TABLE #tmpDA
If you examine the code you will found that i have created a table definition named #tmpDA then i have inserted dynamic sql returned data into the #tmpDA table, after that i have inserted #tmpDA data into the remote server [SQLDB\SQL100]. The problem has been resolved.

Activate your inactive utility folder option task manager




Please visit my new Web Site WWW.Codedisplay.com



Sometimes in Windows operating system we did not found some utilities like:


1. Folder Option
2. Task Manager
3. Control Panel
4. System Restore
5. Run Menu
6. Context Menu
7. My Computer
8. Search Option
9. Command Console
10. Registry Editor
11. MS Configure

This will happen due to virus attack.

Solution:
One software named Re-Enable will help you to activate inactive utility as per your requirement. Download the Re-Enable software from here.

Its a small software which size is only 773 kb. Its a portable software so no need installation. So you can use this free software in your office laptop easily.

Now open the software & select the utilities whichever you want. Now click on Re-Enable button.

Hope now your inactive utilities will be active. Its easy !!!

You can also use the software for below purposes:

1. Detecting autorun.inf virus
2. Repairing Desktop
3. Change folder attributes

Use this software like charm.

Speed up or keep active the RAM activity




Please visit my new Web Site WWW.Codedisplay.com



In using of Windows most of the times system creates page files which will act like virtual memory. But those virtual files may not clear automatically when you shut down the PC or Laptop which slows the RAM speed eventually. You can automatically or forcefully remove or delete the virtual files when shutting down your computer.

To do this follow the below steps:

1. Go to Start then Control Panel
2. Select Administrative Tools

3. Select Local Security Policy
4. Select Security Settings
5. Select Local Policies
6. Select Security Options
7. Go to the right hand side "Shutdown : Clear Virtual Memory Page File" & click twice on this option & enable the option
8. Now click on OK button

Now virtual files will be automatically deleted in every shutdown & your RAM speed will be increase surely.

Sometimes also do the below practice:

1. Go to RUN
2. Now type Tree
3. Press Enter

Do the above job sometimes & hope it will also increase your RAM performance.

Can not delete file Now delete file easily




Please visit my new Web Site WWW.Codedisplay.com



In maximum time virus or for other problems like:

1. The file is in use by another program or user
2. The source or destination file may be in use
3. Make sure the disk is not full or write-protected and that the file is not currently in use
4. Cannot delete file: Access is denied

You may not delete a file easily. For such type of problem the shortest solution is "FileASSASSIN". FileASSASSIN is a free software which you can download from here. Now install it in your system. To delete a file open the software first then choose the problematic file through Browse button or drop the file using mouse. Now if you directly delete the file then checked the "Delete File" option. Else if you want to keep the file but want to keep the file inactive then do not check the option "Delete File" option. At last click on Execute button. Hope now your problem will be resolved. The snapshot of FileAssassin is given below:

This file is used by another program or user


Solution no 2:
1. Start Task Manager
2. Click on Processes Tab
3. Select Explorer.exe

Make sure the disk is not full or write-protected

4. Click on "End Process" - Now your every window will be closed
5. Do not close the Task Manager
6. Now click on File-->New Task (Run..)
7. Now write "Explorer" on Open: input box
8. Now click on OK
9. Now one window is open - browse the problematic file and delete the file normally

Hope your problem will be resolved.
Want To Search More?
Google Search on Internet
Subscribe RSS Subscribe RSS
Article Categories
  • Asp.net
  • Gridview
  • Javascript
  • AJAX
  • Sql server
  • XML
  • CSS
  • Free Web Site Templates
  • Free Desktop Wallpapers
  • TopOfBlogs
     
    Free ASP.NET articles,C#.NET,VB.NET tutorials and Examples,Ajax,SQL Server,Javascript,Jquery,XML,GridView Articles and code examples -- by Shawpnendu Bikash