DataSource Controls :: Exception Occurs Every Time Without Any Error?
May 5, 2010
In my application I am accessing my DB using simple stored procedure..but My code got exception....while I debug the code I have seen that the code is executed successfully and while the whole try block has been executed then the code call the exception but more ridiculously without any kind of error..here is my code
I am working on a 3-tier asp.net application. Currently I'm stuck up in a situation where I need to handle a specific type of exception (User Defined) in DAL and Show alert to the user if that exception occurs in DAL.
I tried following things:
1) I raised that exception from the DAL and catch it in BLL and throw a new BLL exception to for that DAL exception and finally catch it in the UI layer to show the alert to the user. I've successfully implement this in my project. But there are some issues in this approach. First of all I feel this is not right way to do this as it may lead to performance related issues. Secondly, the application contains more than 500 pages and classes. so I need to attach additional catch block in every method to catch the BLL exception. which is the last option i'd like to take.
2) in second approach I logged the the DAL exception into a text file. but problem in this approach is that how could the UI layer know that exception has occurred and show the alert to the user. Is there any event in asp.net where i could handle all this activities?
my question is what is the best approach to handle this type of situation? Will Exception handling block help me in this?
I've tried reading many articles on this but i couldn't get an answer for my question? I might not be using right keywords for my search.
using vb.net/asp.net 2005 and SQL Server 2005.I had similar issue yesterday: I created a unique index on a table to prevent duplicates when user tries to edit existing records in a gridview.This works fine and I am seeing the "cannot insert duplicate key row message...." however I need to catch the exception because I do not want to display the table and column names.I have this set up but its not catching the exception, the exception is displaying but not my version, does anyone know in what gridview event and how I can catch and customize this exception? what i have now (but not working ) is:
string connectionstring = WebConfigurationManager.ConnectionStrings["AdventureWorks"].ConnectionString; SqlConnection con = new SqlConnection(connectionstring); DataSet ds = new DataSet(); DataRelation dr = new DataRelation("show", ds.Tables["HumanResources.Employee"].Columns["EmployeeID"], ds.Tables["HumanResources.EmployeeAddress"].Columns["EmployeeID"],false); ds.Relations.Add(dr); foreach (DataRow row1 in ds.Tables["HumanResources.Employee"].Rows) { Response.Write("customertitle:" + row1["Title"].ToString()); foreach (DataRow row2 in row1.GetChildRows(dr)) { Response.Write("customer add" + row2["ModifiedDate"].ToString()); } }
Object reference not set to an instance of an object. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. Source Error:
[Code]....
Line 31: Line 32: DataSet ds = new DataSet();Line 33: DataRelation dr = new DataRelation("show", ds.Tables["HumanResources.Employee"].Columns["EmployeeID"], ds.Tables["HumanResources.EmployeeAddress"].Columns["EmployeeID"],false);Line 34: //ds.Tables["HumanResources.Employee"].ParentRelations.Add(dr);Line 35: ds.Relations.Add(dr); Source File: d:databaseDataset showing selected field of 2 tables.aspx.cs Line: 33 Stack Trace:
[Code]....
[NullReferenceException: Object reference not set to an instance of an object.] dataset__with_two_tables.Page_Load(Object sender, EventArgs e) in d:databaseDataset showing selected field of 2 tables.aspx.cs:33 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +33 System.Web.UI.Control.OnLoad(EventArgs e) +99 System.Web.UI.Control.LoadRecursive() +47 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436
In ASP.NET should we call Session.Abandon() when an unhandled exception occurs?There are many end users that hit "refresh" or "back" in the web browser in order to resubmit the request.I would like to prevent this behavior by resetting the context.TIA.
I am developing one web application using MS Access database using oledb connection.Previously i checked the same application is works well in the same machine.Now Today i checked they provide "Unspecified Error". And also Provide the following Exception:
System.Data.OleDb.OleDbException: Unspecified errorat System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.OleDb.OleDbConnection.Open() at clsOledbClass.opencon() in c:inetpubwwwrootcheckNPCApp_CodeclsOledbClass.cs:line 64
I am using the following connection string for connecting database:
we are using transactional replication on an sql 2008 server. we try now to add a table to the replication that only consists of 1 culomn of type date and we insert the dates to the table. when we then create the replication we are getting an error on the creation of the snapshot. here is the create table with the insert dates:
USE [Product] GO /****** Object: Table [TimeSlices].[BaseDate] Script Date: 05/03/2010 15:52:24 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[TimeSlices].[BaseDate]') AND type in (N'U')) DROP TABLE [TimeSlices].[BaseDate] GO USE [Product] GO /****** Object: Table [TimeSlices].[BaseDate] Script Date: 05/03/2010 15:52:24 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [TimeSlices].[BaseDate]( [TargetDate] [date] NOT NULL, CONSTRAINT [PK_BaseDate] PRIMARY KEY CLUSTERED ( [TargetDate] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO INSERT INTO [TimeSlices].[BaseDate] SELECT TargetDate FROM [TimeSlices].UDF_GetTravelDateRange(GETDATE()-2 , GETDATE()+1000) attached is the UDF: [Code].... this is the add article: use [Product] exec sp_addarticle @publication = N'Product$(QuoteNumber)', @article = N'BaseDate', @source_owner = N'TimeSlices', @source_object = N'BaseDate', @type = N'logbased', @description = null, @creation_script = null, @pre_creation_cmd = N'drop', @schema_option = 0x000000000803509F, @identityrangemanagementoption = N'manual', @destination_table = N'BaseDate', @destination_owner = N'TimeSlices', @vertical_partition = N'false', @ins_cmd = N'CALL sp_MSins_TimeSlicesBaseDate', @del_cmd = N'CALL sp_MSdel_TimeSlicesBaseDate', @upd_cmd = N'SCALL sp_MSupd_TimeSlicesBaseDate' GO
this is the error we get:
Message: Query for data failed
Stack: at Microsoft.SqlServer.Replication.Snapshot.SqlServer.NativeBcpOutProvider.ThrowNativeBcpOutException(CConnection* pNativeConnectionWrapper) at Microsoft.SqlServer.Replication.Snapshot.SqlServer.NativeBcpOutProvider.BcpOut(String strBcpObjectName, String strBcpObjectOwner, String strBaseBcpObjectName, Boolean fUnicodeConversion, String strDataFile, String strLoadOrderingHint, String strWhereClause, Boolean useTableLockHint, Int32 bcpFileFormatVersion) at Microsoft.SqlServer.Replication.Snapshot.SqlServer.BcpOutThreadProvider.DoWork(WorkItem workItem) at Microsoft.SqlServer.Replication.WorkerThread.NonExceptionBasedAgentThreadProc() at Microsoft.SqlServer.Replication.AgentCore.BaseAgentThread.AgentThreadProcWrapper() (Source: MSSQLServer, Error number: 0) Message: Conversion failed when converting date and/or time from character string. Stack: (Source: MSSQLServer, Error number: 241)
why we are getting the conversion error on the snapshot creation?
When a server error occurs for whatever reasons (YSOD), the server will send a message via SMTP class. In my case, my company employs microsoft exchange and uses NTLM authentication for all domain users. I am authenticating users via NTLA windows integrated authentication. My question is, is it possible to utilize this authentication data, and pass it to the system.web SMTP username/password authentication scheme to send an email to me (the web developer) when the error occurs? I am pretty sure my company requires a username/pwd to send emails via SMPT on the ms exchange server.
I'm having a wicked time trying to redirect the different error scenarios to a custom error page. Basically, I have put some code in Application_Error in global.asax, and done the necessary web.config settings to use Custom Errors.
In global.asax on Application_Error, I stored the Server.GetLastError in Session. The reason I have to store it in Session is because (as far as I know) you lose the exception when using "ResponseRedirect". And the reason I have to use ResponseRedirect is because I am using an UpdatePanel with AJAX calls, and any exception during the AJAX call shows up as a JavaScript error, and doesn't get handled using the custom error page (see this post).
void Application_Error(object sender, EventArgs e){ ////must perform this check to avoid the "Session state is not available in this context" errors if (HttpContext.Current.Session != null) { Session["LastException"] = Server.GetLastError(); } else { // (I think this happens when there are compile-time errors) Server.Transfer("~/Oops.aspx"); }}void Session_Start(object sender, EventArgs e){ //must perform this check to avoid the "Session state is not available in this context" errors if (HttpContext.Current.Session != null) { //initialize the session (http://forums.asp.net/t/1405077.aspx) Session["LastException"] = ""; }}
i have a webform which has got required field validators. when the user doesnt enter values and clicks submit button it should not cause postback. i have set CausesValidation="True" on the submit button.hen the user clicks submit button without entering values, validation occurs( red * marks are shown) but the postback also occurs.
I have an intranet application which I have been putting together with ASP.NET. I have been using VWD 2010 Beta 2 which has been fine so far. But when I go to deploy the work i've done so far to a local IIS a variable which is supposed to be; being filled with the value from HttpContext.Current.User.Identity.Name is not being filled i.e. an error occurs when substring goes out of bounds. I believe it is because the HttpContext.Current.User.Identity.Name is not putting a value into the string variable 'username'. But it is quite strange as when I run the website project within VWD 2010 it works fine without any errors. IIS is set to Integrated Windows Authentication and Annonomous Users are allowed.
public static String getName() { // Store username String name = HttpContext.Current.User.Identity.Name; // Truncate username from domain name String[] substring = new String[1]; // Define the token at which the string will be broken at char[] token = { '\' }; // Split the string substring = name.Split(token); // Return the username return substring[1]; }
Any ideas why when running the exact same files from local IIS gives me errors?
I need to design a bug alert system, where the web support team is notified via email when a user of our website encounters an error of any sort (database exception, or a 404)What would be the best way to design this section of the project?
I have upgraded my laptop to Windows7, VS2010, .net Framework 4 and then upgraded my ASP.NET Web Application to ASP.NET 4.I am now getting the error: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?). This error occurs in a local web service thatI have written and was working before I upgraded my system.I think this has something to do with the changes made to the web.config file when my web application was upgraded to the .net 4 Framework.I have searched the forums and Goggle, but cannot solve my issue.
So basically when i open the page i get the error above.
I've removed-added the toolkit toolbox.The error occurs p.e. in MaskedEditvalidator when i remove the mask from
MaskedEditExtender.Ok i know that it probably needs a mask and it crashes but what the hell is the
C:UsersswaltherProjectsAspNetAjaxReleases30930AjaxControlToolkitSourceAjaxControlToolkitMaskedEditMaskedEditCommon.cs ?? I don't even use c: for any project.Who is swalther?WTH?
And is there a MaskedEditCommon.cs in the toolkit?I did not find any MaskedEditCommon.cs in whatever, version library or whatever i downloaded.
Error:[ArgumentOutOfRangeException: StartIndex cannot be less than zero. Parameter name: startIndex] System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) +7490863 System.String.Substring(Int32 startIndex, Int32 length)