Avatar billede montymus Nybegynder
30. oktober 2005 - 16:14 Der er 4 kommentarer og
1 løsning

Fra kalenderklik til datagrid

Jeg vil gerne have at når man klikker på en dato så bliver indholdet af databasen på denne dato vist i et datagrid. Jeg har noget kode, men det gør jo bare at alle datoer og events bliver vist.. Hvordan får jeg den til kun at vise den dato man klikker på??

private void Calendar1_SelectionChanged(object sender, System.EventArgs e)
        {   
            string ConnStr = "Data Source=MONTYMUZ;Initial Catalog=5SEMTEST_DB;User ID=sa;Password=03051996;";
            SqlConnection Conn = new SqlConnection(ConnStr);   
            SqlDataAdapter myCommand = new SqlDataAdapter("SELECT * FROM Event ORDER BY Dato Desc",ConnStr) ;

            DataSet ds = new DataSet();
            myCommand.Fill(ds, "Event");

            DataGrid1.DataSource = ds.Tables["Event"].DefaultView;
            DataGrid1.DataBind();
       
           
        }
Avatar billede burningice Nybegynder
30. oktober 2005 - 23:14 #1
du skal have begrænset din sql-query så at du kun vælger events hvor at datoen passer med den dato der er valgt i kalenderen
Avatar billede montymus Nybegynder
31. oktober 2005 - 08:37 #2
Nu har jeg prøvet at tage din string fra en anden af mine posts... så jeg får denne kode:

string ConnStr = "Data Source=MONTYMUZ;Initial Catalog=5SEM_FINAL_DB;User ID=sa;Password=03051996;";
            SqlConnection Conn = new SqlConnection(ConnStr);   
            //SqlDataAdapter myCommand = new SqlDataAdapter("SELECT * FROM Event ORDER BY Dato Desc",ConnStr) ;
            //string SQL = "SELECT * FROM Event WHERE eventDate = '"+ this.Calendar1.SelectedDate.ToString() +"'";
            SqlDataAdapter myCommand = new SqlDataAdapter("SELECT * FROM Event WHERE Dato = '"+ this.Calendar1.SelectedDate.ToString() +"'");
            DataSet ds = new DataSet();
            myCommand.Fill(ds, "Event");

            DataGrid1.DataSource = ds.Tables["Event"].DefaultView;
            DataGrid1.DataBind();   


Men der får jeg et par fejl..

c:\inetpub\wwwroot\5sem\SKiste\Calendar.aspx.cs(101): The best overloaded method match for 'System.Data.SqlClient.SqlDataAdapter.SqlDataAdapter(System.Data.SqlClient.SqlCommand)' has some invalid arguments

c:\inetpub\wwwroot\5sem\SKiste\Calendar.aspx.cs(101): Argument '1': cannot convert from 'string' to 'System.Data.SqlClient.SqlCommand'


Kan du eller en anden hjælpe mig ??
Avatar billede montymus Nybegynder
31. oktober 2005 - 09:14 #3
Nu har jeg prøvet at lave min kode om, men nu sker der intet i mit datagrid... jeg kan bare ikke se fejlen..:
SqlConnection mycn;
        SqlDataAdapter myda;
        DataSet ds = new DataSet ();
        DataSet dsSelDate;
        String strConn;

   
        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            strConn="Data Source=MONTYMUZ;uid=sa;pwd=03051996;Initial Catalog=5SEM_FINAL_DB";
            mycn = new SqlConnection(strConn);
            myda = new SqlDataAdapter ("Select * FROM Event", mycn);
            myda.Fill (ds,"Event");

        }

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 Event where Dato='" +Calendar1.SelectedDate.ToString() + "'", mycn);
            dsSelDate = new DataSet();
            myda.Fill(dsSelDate, "Event");
            if (dsSelDate.Tables[0].Rows.Count == 0 )
            {
                DataGrid1.Visible = true;
            }
            else
            {
                DataGrid1.Visible = true;
                DataGrid1.DataSource = dsSelDate;
                DataGrid1.DataBind ();
            }
        }
Avatar billede montymus Nybegynder
31. oktober 2005 - 10:39 #4
Jeg har prøvet at smide noget kode ind for at se om der er hul til db.. men den viser intet..

private void Calendar1_SelectionChanged(object sender, System.EventArgs e)
        {
            strConn="Data Source=MONTYMUZ;uid=sa;pwd=03051996;Initial Catalog=5SEM_FINAL_DB";
            mycn = new SqlConnection(strConn);

            mycn.Open();
                Label1.Text = mycn.State.ToString();
            myda = new SqlDataAdapter("SELECT * FROM Event WHERE Dato='" +Calendar1.SelectedDate.ToString() + "'", mycn);
            dsSelDate = new DataSet();
            myda.Fill(dsSelDate, "Event");
            if (dsSelDate.Tables[0].Rows.Count == 0 )
            {
                DataGrid1.Visible = false;
            }
            else
            {
                DataGrid1.Visible = true;
                DataGrid1.DataSource = dsSelDate;
                DataGrid1.DataBind ();
            }


Hvad er det jeg gør galt her???
Avatar billede montymus Nybegynder
02. november 2005 - 22:20 #5
hmm prøver lige igen..
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