Avatar billede dkkarpen Nybegynder
24. november 2003 - 20:00 Der er 15 kommentarer og
1 løsning

Kalender problemer

Jev vil gerne fylde min kalender med værdier fra en database.

Men men.. neden stående fejler med fejlkoden "Cannot find table 0", med henvisning til linien:

foreach (DataRow dr in ds.Tables[0].Rows)

Hvorfor nu det???

Kode:

        SqlConnection mycn;
        SqlDataAdapter myda;
        DataSet ds = new DataSet ();
        DataSet dsSelDate;

        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            mycn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["connStr"]);
            myda = new SqlDataAdapter ("Select * FROM kalender", mycn);
            myda.Fill (ds,"Table");
        }

        protected void CalendarDRender(object  sender  ,System.Web.UI.WebControls.DayRenderEventArgs  e  )
        {
            // If the month is CurrentMonth
            if (! e.Day.IsOtherMonth )
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    if ((dr["dato"].ToString() != DBNull.Value.ToString()))
                    {
                        DateTime dtEvent= (DateTime)dr["dato"];
                        if (dtEvent.Equals(e.Day.Date))
                        {
                            e.Cell.BackColor = Color.PaleVioletRed;
                        }
                    }
                }   
            }
                //If the month is not CurrentMonth then hide the Dates
            else
            {
                e.Cell.Text = "";
            }
        }

        private void Calendar1_SelectionChanged(object sender, System.EventArgs e)
        {
            myda = new SqlDataAdapter("Select * from kalender where dato='" +
                Calendar1.SelectedDate.ToString() + "'", mycn);
            dsSelDate = new DataSet();
            myda.Fill(dsSelDate, "AllTables");
            if (dsSelDate.Tables[0].Rows.Count == 0 )
            {
                DataGrid1.Visible = false;
            }
            else
            {
                DataGrid1.Visible = true;
                DataGrid1.DataSource = dsSelDate;
                DataGrid1.DataBind ();
            }
        }
Avatar billede repsak Nybegynder
24. november 2003 - 22:30 #1
bare et forsæg som jeg har haft erfaring med
myda.Fill (ds,"Table"); ->
myda.Fill (ds);
Avatar billede dkkarpen Nybegynder
24. november 2003 - 23:20 #2
Desværre...
Avatar billede vraa Nybegynder
24. november 2003 - 23:50 #3
Hvis din tabel i databasen hedder "kalender" så prøv lige og lav linien om til det her:
foreach (DataRow dr in ds.Tables["kalender"].Rows)
Avatar billede vraa Nybegynder
25. november 2003 - 00:34 #4
samtidig med at du laver denne linie:

myda.Fill (ds,"Table");

om til:

myda.Fill (ds,"kalender");
Avatar billede dkkarpen Nybegynder
25. november 2003 - 09:16 #5
Object reference not set to an instance of an object.
Avatar billede vraa Nybegynder
25. november 2003 - 11:29 #6
hvilken linie får den fejlmeddellelse. Den samme som før?
Avatar billede dkkarpen Nybegynder
25. november 2003 - 14:08 #7
foreach (DataRow dr in ds.Tables["kalender"].Rows)
Avatar billede vraa Nybegynder
25. november 2003 - 18:09 #8
hvordan ser tabellen indholdet ud i tabellen kalender
Avatar billede vraa Nybegynder
25. november 2003 - 18:09 #9
det jeg vil sige var, hvordan ser indholdet ud i tabellen "kalender"?
Avatar billede dkkarpen Nybegynder
25. november 2003 - 18:28 #10
kalenderid
dato
tid
titel
tekst
su
oprettet
opretter
opdateret
opdateretaf
Avatar billede dkkarpen Nybegynder
25. november 2003 - 18:28 #11
Skal du også bruge datatyper?
Avatar billede vraa Nybegynder
25. november 2003 - 19:22 #12
Prøv og udskifte det du har skrevet her:

        SqlConnection mycn;
        SqlDataAdapter myda;
        DataSet ds = new DataSet ();
        DataSet dsSelDate;

        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            mycn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["connStr"]);
            myda = new SqlDataAdapter ("Select * FROM kalender", mycn);
            myda.Fill (ds,"Table");
        }

        protected void CalendarDRender(object  sender  ,System.Web.UI.WebControls.DayRenderEventArgs  e  )
        {
            // If the month is CurrentMonth
            if (! e.Day.IsOtherMonth )
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    if ((dr["dato"].ToString() != DBNull.Value.ToString()))
                    {
                        DateTime dtEvent= (DateTime)dr["dato"];
                        if (dtEvent.Equals(e.Day.Date))
                        {
                            e.Cell.BackColor = Color.PaleVioletRed;
                        }
                    }
                }   
            }
                //If the month is not CurrentMonth then hide the Dates
            else
            {
                e.Cell.Text = "";
            }
        }


...med det her:

SqlConnection c = new SqlConnection();
c.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["connStr"];
c.Open();
SqlCommand sqlcommand = new SqlCommand();
sqlcommand.Connection = c;
sqlcommand.CommandText = "Select * FROM kalender";
SqlDataAdapter sqldataadapter = new SqlDataAdapter();
sqldataadapter.SelectCommand = sqlcommand;
DataSet dataset = new DataSet();
sqldataadapter.Fill(dataset);
DataTable datatable = new DataTable();
datatable = dataset.Tables[0];
if (! e.Day.IsOtherMonth )
{
    foreach(DataRow dr in datatable.Rows)
    {
        if ((dr["dato"].ToString() != DBNull.Value.ToString()))
                {
                        DateTime dtEvent= (DateTime)dr["dato"];
                        if (dtEvent.Equals(e.Day.Date))
                    {
                        e.Cell.BackColor = Color.PaleVioletRed;
                    }
                }
        }   
}
else
{
        e.Cell.Text = "";
}
Avatar billede dkkarpen Nybegynder
25. november 2003 - 20:53 #13
Fedt det virkede. Men  private void Calendar1_SelectionChanged(object sender, System.EventArgs e) virker stadig ikke. Det er som om metoden ikke aktiveres.
Avatar billede dkkarpen Nybegynder
25. november 2003 - 21:19 #14
Tjaa nu virker det lige pludselig. Tak for hjælpen.
Avatar billede dkkarpen Nybegynder
25. november 2003 - 21:20 #15
Laver du et svar vraa?
Avatar billede vraa Nybegynder
25. november 2003 - 21:30 #16
Perfekt... Et svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester