Hej. Varför kör du en iDataReader om du bara ska hämta ut ett värde? Det borde betyda att du inte får ut någon DataReader... Har ingen koll på DNN alls, det går inte få ut något felmeddelande från ExecuteSQL på något sätt?Datareader Object reference not set to an instance of an object.
Sitter och pillar på en modul till DNN där man ska laddaupp bilder skriver i C# vilket inte är vad jag är van vid direkt.
Får ett fel som jag inte blir klok på har denna klass som jag tycker borde funka kanon men den haltar på denna rad while (dr.Read()) det verkar som att jag ska skapa ett nytt object men det har jag ju redan gjort..
Tacksam för hjälp
Min klass:
public static int CountPictures(int ModuleId)
{
int intPictures = 0;
StringBuilder mySqlString = new StringBuilder();
mySqlString.Append("SELECT count(*) as mycount ");
mySqlString.Append("FROM images_Pictures ");
mySqlString.Append("WHERE ");
mySqlString.Append("ModuleId = @ModuleId ");
SqlParameter parmModuleId = new SqlParameter("@ModuleId", SqlDbType.Int, 4);
parmModuleId.Value = ModuleId;
IDataReader dr =((IDataReader)(DataProvider.Instance().ExecuteSQL(mySqlString.ToString(), parmModuleId)));
using (dr)
{
while (dr.Read())
{
intPictures = Convert.ToInt32(dr["mycount"]);
}
}
return intPictures;
}
Fel mess:
System.NullReferenceException was unhandled by user code
Message="Object reference not set to an instance of an object."
Source="App_SubCode_images.nie0i62u"
StackTrace:
at System.Web.UI.Control.OnInit(EventArgs e)
at System.Web.UI.WebControls.ObjectDataSource.OnInit(EventArgs e)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.AddedControl(Control control, Int32 index)
at System.Web.UI.ControlCollection.Add(Control child)
at DotNetNuke.UI.Skins.Pane.InjectModule(ModuleInfo objModule)
InnerException: Sv: Datareader Object reference not set to an instance of an object.
Nu är detta för MySQL... men jag brukar köra så här om jag ska hämta singelvärden...
MySqlCommand myCount = new MySqlCommand("SELECT COUNT(user_id) FROM tblAdmin");
adminCount = Convert.ToInt16(DAL.ExecuteScalar(myCount));
...och den går mot mitt DAL...
public static object ExecuteScalar(MySqlCommand command)
{
using (MySqlConnection conn = GetConnection())
{
command.Connection = conn;
object result = command.ExecuteScalar();
return result;
}
}Sv: Datareader Object reference not set to an instance of an object.
/Johan