webForumDet fria alternativet

Får inte ut datumet

.NET

2 svar · 482 visningar · startad av Vinnaren

Medlem sedan sep. 2005833 inlägg
Frågan#1

Har följande:

            
<asp:HyperLink CssClass="navigation" ID="HyperLink1" runat="server" NavigateUrl='<%#"~/Default.aspx?y="+Eval("Year")+"&m="+Eval("month") %>' Text='<%#Eval("myDate") %>' />

    internal static DataTable GetArchive()
    {
        using (MySqlConnection conn = new MySqlConnection(ConnString))
        {
            try
            {
                conn.Open();
                MySqlDataAdapter da = new MySqlDataAdapter("SELECT DISTINCT(MONTHNAME(Date)) AS myDate, YEAR(Date) AS year, MONTH(Date) AS month FROM Post WHERE YEAR(Date) = YEAR(NOW()) ORDER BY Date", conn);
                da.SelectCommand.CommandType = CommandType.Text;

                DataSet ds = new DataSet();
                da.Fill(ds);
                return ds.Tables[0];
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.Message);
            }
        }
    }

Nu skrivs System.Byte[], hur får jag ut datumet istället som visas i sql frågan?

Tacksam för all hjälp :stud

Medlem sedan juni 20003 076 inlägg
#2

Jag tycker du ska försöka skilja mer på design och data.
Låt hyperlänken vara tom i designen och bind den code behind istället så blir det lite renare och tydligare! :)

<asp:HyperLink CssClass="navigation" ID="HyperLink1" runat="server" />
protected void Page_Load(object sender, EventArgs e)
{
     if(!IsPostBack)
          BindLink();
}

private void BindLink()
{
     DataTable dt = GetArchive();
     HyperLink1.Text = dt.Rows[0]["myDate"].ToString();
     HyperLink1.NavigateUrl = "~/Default.aspx?y="+dt.Rows[0]["Year"].ToString() + "&m=" + dt.Rows[0]["month"].ToString();
}

internal static DataTable GetArchive()
    {
        using (MySqlConnection conn = new MySqlConnection(ConnString))
        {
            try
            {
                conn.Open();
                MySqlDataAdapter da = new MySqlDataAdapter("SELECT DISTINCT(MONTHNAME(Date)) AS myDate, YEAR(Date) AS year, MONTH(Date) AS month FROM Post WHERE YEAR(Date) = YEAR(NOW()) ORDER BY Date", conn);
                da.SelectCommand.CommandType = CommandType.Text;

                DataSet ds = new DataSet();
                da.Fill(ds);
                return ds.Tables[0];
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.Message);
            }
        }
    }

/RED
Sen skulle du kunna använda en linkbutton istället för hyperlink om du vill slippa en massa querysträngar! Men det hänger lite på hur resten av koden ser ut! :)

Medlem sedan sep. 2005833 inlägg
#3

hmm, tack. MEN glömde och ta med all kod :r , HyperLinken ligger i sin tur i en repeter.

    <asp:Repeater ID="rCategory" runat="server" DataSourceID="odsCategory">
        <ItemTemplate>
            <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#"~/Default.aspx?y="+Eval("Year")+"&m="+Eval("month") %>' Text='<%#Eval("myDate") %>' /><br />
        </ItemTemplate>
    </asp:Repeater>

Kanske inte så smart att binda den i code behind då?

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)