Monday, March 26, 2012

object reference not set to an instance of an object

Hello,

I am trying to use the ObjectDataSource, & the class file where I'm getting the error is this:

using

System;

using

System.Data;

using

System.Configuration;

using

System.Web;

using

System.Web.Security;

using

System.Web.UI;

using

System.Web.UI.WebControls;

using

System.Web.UI.WebControls.WebParts;

using

System.Web.UI.HtmlControls;

using

System.Data.SqlClient;

//SQL Server Data Layer to Players table

public

classPlayerLogic

{

public PlayerLogic()

{

}

privatestaticstring cs =ConfigurationManager.ConnectionStrings["BBDBA"].ConnectionString;publicstaticDataSet GetPlayers()

{

DataSet ds =newDataSet();SqlConnection cn =newSqlConnection(cs);

cn.Open();

SqlDataAdapter da =newSqlDataAdapter("dbo.usp_PlayersGetAll", cn);

da.Fill(ds);

cn.Close();

cn.Dispose();

return ds;

}

publicstaticDataSet GetPlayer(int PlayerID)

{

DataSet ds =newDataSet();SqlConnection cn =newSqlConnection(cs);SqlCommand cmd =newSqlCommand("dbo.usp_PlayersGetOne", cn);

cmd.CommandType =

CommandType.StoredProcedure;

cmd.Parameters.Add(

newSqlParameter("@dotnet.itags.org.PlayerID", PlayerID));

cn.Open();

SqlDataAdapter da =newSqlDataAdapter(cmd);

da.Fill(ds);

cn.Close();

cn.Dispose();

return ds;

}

publicstaticstring SavePlayer(Player1 MyPlayer)

{

SqlConnection cn =newSqlConnection(cs);SqlCommand cmd =newSqlCommand("dbo.usp_PlayerSave2005", cn);string err ="";string rtn ="";if ((Convert.ToInt32(MyPlayer.Rank) > 25) || (Convert.ToInt32(MyPlayer.Rank) < 0))

{

err =

"Rank must be between 0 & 25 ";

}

if (MyPlayer.PlayerName ==String.Empty)

{

err =

"PlayerName required";

}

if (err.Length == 0)

{

cmd.CommandType =

CommandType.StoredProcedure;

cmd.Parameters.Add(

newSqlParameter("@dotnet.itags.org.ErrMsg",SqlDbType.VarChar, 254));

cmd.Parameters[

"@dotnet.itags.org.ErrMsg"].Direction =ParameterDirection.Output;

cmd.Parameters.Add(

newSqlParameter("@dotnet.itags.org.NewID",SqlDbType.Int));

cmd.Parameters[

"@dotnet.itags.org.NewID"].Direction =ParameterDirection.Output;

cmd.Parameters.Add(

newSqlParameter("@dotnet.itags.org.PlayerID", MyPlayer.PlayerID));

cmd.Parameters.Add(

newSqlParameter("@dotnet.itags.org.PlayerName", MyPlayer.PlayerName));

cmd.Parameters.Add(

newSqlParameter("@dotnet.itags.org.Rank", MyPlayer.Rank));

cmd.Parameters.Add(

newSqlParameter("@dotnet.itags.org.HireDate", MyPlayer.HireDate));

cmd.Parameters.Add(

newSqlParameter("@dotnet.itags.org.PositionCode", MyPlayer.PositionCode));

cmd.Parameters.Add(

newSqlParameter("@dotnet.itags.org.Salary", MyPlayer.Salary));

cn.Open();

cmd.ExecuteNonQuery();

//err = cmd.Parameters["@dotnet.itags.org.ErrMsg"].Value.ToString();//rtn = cmd.Parameters["@dotnet.itags.org.NewID"].Value.ToString();

}

//if (err.Length > 0)//{// rtn = "*" + err;//}//else//{// rtn = cmd.Parameters["@dotnet.itags.org.NewID"].Value.ToString();//}

cn.Close();

cn.Dispose();

return rtn;

}

publicstaticint DeletePlayer(int PlayerID)

{

SqlConnection cn =newSqlConnection(cs);SqlCommand cmd =newSqlCommand("dbo.usp_PlayerDelete", cn);int rtn;

cmd.CommandType =

CommandType.StoredProcedure;

cn.Open();

rtn = cmd.ExecuteNonQuery();

cn.Close();

cn.Dispose();

return rtn;

}

}

The code where I'm calling the class from is:

using

System;

using

System.Data;

using

System.Configuration;

using

System.Collections;

using

System.Web;

using

System.Web.Security;

using

System.Web.UI;

using

System.Web.UI.WebControls;

using

System.Web.UI.WebControls.WebParts;

using

System.Web.UI.HtmlControls;

public

partialclassDefaultODS : System.Web.UI.Page

{

protectedvoid Page_Load(object sender,EventArgs e)

{

lblMsg.Text =

"";

}

protectedvoid frvPlayer_DataBound(object sender,EventArgs e)

{

//if (frvPlayer.CurrentMode == FormViewMode.Edit)//{// LinkButton btn = new LinkButton();// btn = (LinkButton)frvPlayer.FindControl("btnDelete");// btn.Attributes.Add("onClick", "return confirm('Confirm your delete!')");//}

}

protectedvoid frvPlayer_ItemUpdated(object sender,FormViewUpdatedEventArgs e)

{

if (e.AffectedRows > 0)

{

grdPlayers.DataBind();

lblMsg.Text =

"PlayerID " + e.Keys["PlayerID"] +" " + e.NewValues["PlayerName"].ToString() +" Updated";

e.KeepInEditMode =

false;

}

else

{

e.KeepInEditMode =

true;

}

}

protectedvoid frvPlayer_ItemUpdating(object sender,FormViewUpdateEventArgs e)

{

lblMsg.Text =

"";if((Convert.ToInt32(e.NewValues["Rank"]) > 25) || ((Convert.ToInt32(e.NewValues["Rank"]) < 0)))

{

lblMsg.Text =

"Rank must be between 0 & 25 " +"; " + lblMsg.Text;

e.Cancel =

true;

}

if (e.NewValues["PlayerName"].ToString() ==String.Empty)

{

lblMsg.Text =

"Player name required";

e.Cancel =

true;

}

}

protectedvoid frvPlayer_ItemDeleted(object sender,FormViewDeletedEventArgs e)

{

if (e.AffectedRows > 0)

{

lblMsg.Text =

"PlayerID " + e.Keys["PlayerID"] +" " +

e.Values[

"PlayerName"].ToString() +" Deleted";

grdPlayers.DataBind();

frvPlayer.ChangeMode(

FormViewMode.ReadOnly);

}

else

{

lblMsg.Text =

"Error deleting record";

}

grdPlayers.DataBind();

}

protectedvoid frvPlayer_ItemInserted(object sender,FormViewInsertedEventArgs e)

{

if (e.AffectedRows > 0)

{

lblMsg.Text = e.Values[

"PlayerName"].ToString() +" Inserted";

grdPlayers.DataBind();

e.KeepInInsertMode =

false;

}

else

{

e.KeepInInsertMode =

true;

}

}

protectedvoid grdPlayers_RowUpdated(object sender,GridViewUpdatedEventArgs e)

{

if (e.AffectedRows > 0)

{

grdPlayers.DataBind();

lblMsg.Text =

"PlayerID# " + e.Keys["PlayerID"].ToString() +"- " +"Updated";

}

else

{

lblMsg.Text =

"Error updating record";

}

}

protectedvoid frvPlayer_ItemInserting(object sender,FormViewInsertEventArgs e)

{

lblMsg.Text =

"";if ((Convert.ToInt32(e.Values["Rank"]) < 0) || ((Convert.ToInt32(e.Values["Rank"]) > 25)))

{

lblMsg.Text =

"There can't be less than 0 players or more than 25";

e.Cancel =

true;

}

if (e.Values["PlayerName"].ToString() ==String.Empty)

{

lblMsg.Text =

"Player name required";

e.Cancel =

true;

}

}

//protected void frvPlayerDataSource_Inserting(object sender, SqlDataSourceCommandEventArgs e)//{// //set the insert flag// e.Command.Parameters["@dotnet.itags.org.PlayerID"].Value = 0;//}//protected void frvPlayerDataSource_Updated(object sender, SqlDataSourceStatusEventArgs e)//{// if(e.Command.Parameters["@dotnet.itags.org.ErrMsg"].Value.ToString().Length > 0)// {// lblMsg.Text = "<font color=red>" + e.Command.Parameters["@dotnet.itags.org.ErrMsg"].Value.ToString() + "</Font>";// }//}//protected void frvPlayerDataSource_Inserted(object sender, SqlDataSourceStatusEventArgs e)//{// if (e.Command.Parameters["@dotnet.itags.org.ErrMsg"].Value.ToString().Length > 0)// {// lblMsg.Text = "<font color=red>" + e.Command.Parameters["@dotnet.itags.org.ErrMsg"].Value.ToString() + "</Font>";// }//}

}

The error I get is this:

Server Error in '/DataSample10' Application.

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:

Line 18: }Line 19:Line 20: private static string cs = ConfigurationManager.ConnectionStrings["BBDBA"].ConnectionString;Line 21: Line 22: public static DataSet GetPlayers()


Source File:c:\BegASPNET2\C#\DataSample10\App_Code\PlayerLogic.cs Line:20

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.] PlayerLogic..cctor() in c:\BegASPNET2\C#\DataSample10\App_Code\PlayerLogic.cs:20[TypeInitializationException: The type initializer for 'PlayerLogic' threw an exception.] PlayerLogic.GetPlayer(Int32 PlayerID) in c:\BegASPNET2\C#\DataSample10\App_Code\PlayerLogic.cs:53[TargetInvocationException: Exception has been thrown by the target of an invocation.] System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +72 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +358 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29 System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) +17 System.Web.UI.WebControls.ObjectDataSourceView.InvokeMethod(ObjectDataSourceMethod method, Boolean disposeInstance, Object& instance) +676 System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +2652 System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +84 System.Web.UI.WebControls.DataBoundControl.PerformSelect() +154 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +99 System.Web.UI.WebControls.FormView.DataBind() +23 System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +91 System.Web.UI.WebControls.FormView.EnsureDataBound() +176 System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +101 System.Web.UI.Control.EnsureChildControls() +134 System.Web.UI.Control.PreRenderRecursiveInternal() +109 System.Web.UI.Control.PreRenderRecursiveInternal() +233 System.Web.UI.Control.PreRenderRecursiveInternal() +233 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4435



Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42

I'm a big newbie, so I'd appreciate any input you guys have!

Thanks,

Orbit

no one wants to read that all...

Find the line thats erroring and post JUST that relevant code.


check what it ConfigurationManager.ConnectionStrings["BBDBA"] in debug mode.

As curt_c said please post the relevant code


Hi Curt,

Sorry it was so verbose. As a newbie, I just wanted to be sure I didn't leave anything out. Thank you for your reply, however. I would post a culled version of the question, but "vtrajan" resolved the issue for me.

Thanks again,

Orbit


Dear "vtrajan",

Thank you, your suggestion resolved my issue. Debugging is an area I need to improve upon bigtime. And I'll take the suggestion to be more succinct in my question posts from now on.

Thanks again,

Orbit

0 comments:

Post a Comment