Anonymní profil Jiří Zdvomka – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Jiří Zdvomka – Programujte.comAnonymní profil Jiří Zdvomka – Programujte.com

 

Příspěvky odeslané z IP adresy 88.103.170.–

.NET › Zobrazení odkazů v textu
28. 2. 2013   #172193

Vyřešil jsem to pomocí RegEx

.NET › Zobrazení odkazů v textu
26. 2. 2013   #172132

Zdravím, nevím si rady, jak zobrazit hypertextový odkaz uvnitř textu.

Html encode jsem vyřešil při vkáldání do databáze takto:

Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("MotWebConnectionString").ConnectionString.ToString)
        Try
            conn.Open()
            Dim cmd As SqlCommand = conn.CreateCommand()
            cmd.CommandText = "INSERT INTO Posts (GroupId, UserName, Text) VALUES (@GroupId, @UserName, @Text)"
            cmd.Parameters.Add("@GroupId", System.Data.SqlDbType.Int).Value = Request.QueryString("id")
            cmd.Parameters.Add("UserName", System.Data.SqlDbType.NVarChar).Value = Context.User.Identity.Name
            cmd.Parameters.Add("Text", System.Data.SqlDbType.NText).Value = HtmlRemoval.StripTagsCharArray(txtAddPost.Text)           
            cmd.ExecuteNonQuery()
            
            
            Response.Redirect(ResolveClientUrl("~/Groups/Group.aspx?id=" + Request.QueryString("id")))
        Catch ex As SqlException
            
        Finally
            conn.Close()
        End Try

A zobrazuju přes SqlDataSource v Repeateru v Literalu: 

<asp:Literal ID="TextLiteral" Text='<%# Eval("Text")%>' Mode="Encode" runat="server">

Už 2 dny googluju, jak před zobrazením dat si je přečíst, najít úseky textu začínající na http://... a končící mezerou a dát si je do <a rel="nofollow" href="">.... nebo nějaký jiný způsob, jak zvýraznit obyčejné odkazy (http://něco.com) uvnitř textu.

Neznal by někdo nějaké jednoduché řešení této záležitosti (přidejte prosím kdyžtak zdroják)? 

.NET › ASP.NET - vlastní příspěvky…
15. 2. 2013   #171577

#5 Evzen
Díky za odpověď. Vaše řešení je dobré a mám ho připravené jako záložní řešení, protože jsem tenhle způsob už v minulosti použil v jiném projektu. 

Teď právě potřebuju, aby na jedné stránce byl seznam všech příspěvků a pod příspěvkem seznam komentářů k němu patřícím. Bohužel se mi to tímto způsobem nedaří.

Co je to SELECT a JOIN vím. Akorát jsem doposud nepotřeboval jiný příkaz, než pouze JOIN. Jaký je rozdíl mezi INNER JOIN a OUTER JOIN se podívám.

.NET › ASP.NET - vlastní příspěvky…
15. 2. 2013   #171563

Díky za odpověď. Tohle pomohlo, už se zobrazují i příspěvky bez komentáře.

Ještě problém, na který jsem teď přišel. Když má příspěvek více komentářů, tak se ten příspěvek rozdvojí (zkopíruje), je na stránce vícekrát a pod každou kopií je jeden komentář. Nevíte, jak fixnout tohle?

A potom bych ještě potřeboval poradit s tím vkládáním komentářů.

.NET › ASP.NET - vlastní příspěvky…
14. 2. 2013   #171507

#1 jstorm

Tak už jsem na něco přišel. 


Udělal jsem si tabulku Comments se sloupcem ID příspěvku. Spojil jsem tabulku Posts a Comments příkazem JOIN a komentář se opravdu zobrazí jenom pod příspěvkem, pod kterým má.

Akorát mám 2 problémy. Na stránce se zobrazí pouze ty příspěvky, které mají nějaký komentář. Ty bez komentáře se nezobrazí.

Potom nevím, jak vložit do tabulky s komentáři ID příspěvku, ke kterému komentář napíšu.

Přidám kód:

<div id="GroupPosts">
        <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:MotWebConnectionString %>" 
        SelectCommand="SELECT * FROM [Posts] 
                        JOIN [Users] ON [Users].[UserName] = [Posts].[UserName] 
                        JOIN [Comments] ON [Comments].[PostId] = [Posts].[PostId]
                        WHERE ([GroupId] = @GroupId) ">
            <SelectParameters>
                <asp:QueryStringParameter Name="GroupId" QueryStringField="id" Type="Int32" />
            </SelectParameters>
        </asp:SqlDataSource>


<asp:Repeater ID="DataList2" runat="server" DataSourceID="SqlDataSource3" >
            <ItemTemplate>
                <table style="width: 100%;">
                    <tr>
                        <td width="10%">    
                            <asp:Image ID="Image2" runat="server" Width="64px" Height="64px" ImageUrl='<%# Eval("ProfilePicture")%>' />
                        </td>
                        <td align="left" width="90%" >
                            <p><asp:Literal ID="Literal2" runat="server" Text='<%# Eval("Username")%>'></asp:Literal></p>
                        </td>
                    </tr>                    
                </table>
                <asp:Literal ID="Literal3" runat="server" Text='<%# Eval("Text")%>'></asp:Literal>

                <table>
                    <tr>
                        <td>
                            <asp:Literal ID="Literal4" runat="server" Text='<%# Eval("CommentText")%>'></asp:Literal>
                        </td>
                    </tr>
                </table>
</ItemTemplate>
</asp:Repeater
 
.NET › ASP.NET - vlastní příspěvky…
13. 2. 2013   #171472

Dobrý den, ve svém projektu potřebuji na stránku jednoduché příspěvky a komentáře k nim jako např. na Facebooku.

Příspěvky jsem udělal jednoduše přes tabulku v databázi, SqlDataSource a DataList. Horší to je s komentáři.

Do ItemTemplate DataListu jsem hodil další DataList, určený pro komentáře ke každému příspěvku. Kdyby byl na stránce pouze jeden přispěvek, dokázal bych udělat komentář. V tabulce s komentáři bych měl vazbu na ID příspěvku. Ale nedokážu to vymyslet, když je jich na stránce více, tak aby byl komentář přímo pod příspěvkem, ke kterému patří.

Můžete mi prosím poradit, jak vyřešit tento problém? Případně existuje již nějaké hotové řešení, které bych mohl použít a graficky si ho přizpůsobit?

jstorm
.NET › sql filtr like
12. 2. 2013   #171444

#2 RomanZ
Už jsem na to přišel, děkuju za odpověď.  SQL dotaz nechám stejně, tedy WHERE [UserName] LIKE @UserName

A na stránce s vyhledávacím políčekm, kde předávám hodnotu z textboxu do parametru v CodeBehind akorát dopíšu procenta takhle:

Response.Redirect(ResolveClientUrl("~/SearchResults.aspx?q=%" + TextBox1.Text + "%"))
jstorm
.NET › sql filtr like
12. 2. 2013   #171443

#3 jstorm
Aha tak pardon, šlo by to. Ale jak jsem psal, uživatel tam nebude zadávat jméno i s těmi procenty. Nešlo by to ještě nějak jinak?

jstorm
.NET › sql filtr like
12. 2. 2013   #171442

#2 RomanZ
Ne, takhle to nejde. A navíc uživatel přece nebude zadávat do searchboxu procenta.

jstorm
.NET › sql filtr like
12. 2. 2013   #171439

Zdravím, potřeboval bych poradit, jak správně sestavit sql příkaz pro vyhledávání s filterm LIKE a QueryString parametrem.

 SelectCommand="SELECT [UserName] FROM [Users] WHERE ([UserName] LIKE '%@UserName%')">
         <SelectParameters>
             <asp:QueryStringParameter Name="UserName" QueryStringField="q" Type="String" />
         </SelectParameters>  

Takhle to nenajde nic, ale když napíšu místo parametru přímo hledaný výraz, tak to funguje -where ([UserName] Like '%adam%'

Jak mám teda správně napsat tento sql dotaz s querystring parametrem?

HoriciKer
.NET › ASP.NET - zachycení sql exce…
11. 2. 2013   #171394

#8 Kuba
Už jsem na to přišel. Kód má být takto:

 Protected Sub SqlDataSource3_Inserted(sender As Object, e As SqlDataSourceStatusEventArgs)
        If e.Exception IsNot Nothing Then
            Response.Redirect(ResolveClientUrl("~/Default.aspx"))
            ' Prevent exception from being re-thrown
            e.ExceptionHandled = True
        End If
    End Sub
HoriciKer
.NET › ASP.NET - zachycení sql exce…
11. 2. 2013   #171378

#5 Vaizo
Děkuju za odpověď.

Událost OnInserting už jsem vyvolal. Akorát je ještě problém v tom kódu, co jste napsal:

HoriciKer
.NET › ASP.NET - zachycení sql exce…
11. 2. 2013   #171375

#1 HoriciKer
Našel jsem si na internetu tento kód:

  Try
        Catch ex As SqlException
            If Not ex.ErrorCode = &H80131904UI Then
                Throw


            End If
        End Try

Ale bohužel nevím, do jaké události jej mám vložit. Zkoušel jsem to do události tlačítka, které vyvolá chybu (Button_click), do Page_Error, Application_Error. V ani jednom případě se chyba neošetří.

HoriciKer
.NET › ASP.NET - zachycení sql exce…
10. 2. 2013   #171372

#2 Vaizo
Jo mám

HoriciKer
.NET › ASP.NET - zachycení sql exce…
10. 2. 2013   #171367

Dobrý den, potřebuju poradit, jak ošetřit tuto vynucenou chybu.

Chybu vyvolávám záměrně, aby se do databáze nevkládali duplicitní údaje. Do databáze se po kliknutí na tlačítko uloží  údaj.

V programování nejsem moc dobrý, a nevím, do jaké události ošetřit tuto chybu. Asi by se měla ošetřit nějakou podmínkou - pokud nastane chyba SqlException, zobrazit hlášku. Bohužel nevím, jak mám tuto podmínku poskládat. 

Taky jsem zkoušel použít Try...Catch blok, ale takhle to asi nepůjde, protože s databází nekomunikuji v kódu, ale na serveru přes SqlDataSource.

Předem děkuji za odpověď

Visual Basic › Filtrování dat v datagridview
1. 11. 2012   #165725

Nakonec jsem přišel na řešení pomocí DataRelation:

'ds je dataset, který už mám v projektu
Dim tridy As DataTable = ds.Tables("Tridy")
Dim zaci As DataTable = _Marks_DataSet.Tables("Zaci")


_Marks_DataSet.Relations.Add("relation1",tridy.Columns("IdTrida"), zaci.Columns("IdTrida"))

dgvTridy.DataSource = _Marks_DataSet
dgvTridy.DataMember = "tridy"
dgvZaci.DataSource = _Marks_DataSet
dgvZaci.DataMember = "tridy.relation1"
Visual Basic › Filtrování dat v datagridview
28. 10. 2012   #165451

Dobrý den, potřeboval bych poradit s jednou databázovou aplikací, na které pracuji.

A problém je následující. Mám 2 DataGridView, a potřeboval bych filtrovat data v tom druhém, podle toho prvního. Např. v prvním DGV mám seznam tříd, a po kliknutí na třídu bych chtěl v druhém DGV zobrazit žáky, kteří chodí pouze do třídy, kterou jsem vybral.

Napadlo mě, že v události prvního DGV "cell click" se provede LINQ dotaz (např.: SELECT * FROM [zaci] WHERE [idzak] IN [vazebnatabulka] =...). Ale nevím, jak získat po kliknutí na třídu v DGV id této třídy, a následně ho použít v dotazu.

Nevěděli byste někdo, jak tento problém vyřešit? 

Děkuji za odpověď

Jiří
Visual Basic › Ukládání a načítání
15. 7. 2012   #160158

#3 Keny
Ukládání textu z textového pole do souboru je jednoduché. Používá se pro to třídy StreamReader a StreamWriter.

Vytvoř si v projektu txt soubor, a nastav mu vlastnost "Copy To Output Directory" na "Copy Always"

Ukládání

Dim soubor As New IO.StreamWriter("soubor.txt") 'otevření souboru
	'text z každého textboxu je zapsaný na samostatný řádek
	soubor.WriteLine(TextBox1.Text)
	soubor.WriteLine(TextBox2.Text)	
	soubor.WriteLine(TextBox3.Text)
soubor.Close() 'zavření souboru

Načítání

Dim soubor As New IO.StreamReader("soubor.txt") 'otevření souboru
While soubor.EndOfStream 'číst, dokud nejsme na konci souboru
		'načtení řádků ze souboru
Dim text As String = soubor.ReadLine()	'načtení prvního textu	
Dim text2 As String = soubor.ReadLine() 'druhého
Dim text3 As String = soubor.ReadLine()	'třetího

MsgBox(text & vbCrLf & text2 & vbCrLf & text3) 'zobrazení textů v msgboxu, tady už si to zobrazíš v čem potřebuješ
soubor.Close() 'zavřít souboru

Jiří
Visual Basic › Součet v DataGridViewu
24. 4. 2012   #156997

#3 Jiří
Omlouvám se, už jsem to zpravil. Měl jsem chybu v předchozím kódu.

Děkuji za odpověď, vlákno můžete uzavřít.  

Jiří
Visual Basic › Součet v DataGridViewu
24. 4. 2012   #156996

#2 pistolnik
Děkuji za odpověď, tohle by mohlo fungovat, ale hází mi to chybu u tohohle kódu:

Text: Index was out of range.Must be non-negative and less than the size of the collection.

Jméno sloupce v datagridviewu se mi zdá být v pořádku. Jaké jiné jméno bych tam měl dát?

Jiří
Visual Basic › Součet v DataGridViewu
23. 4. 2012   #156986

Dobrý den, potřeboval bych poradit, jak sečíst hodnoty celého sloupce v DataGridViewu.

Mám tam několik sloupců a potřeboval bych sečíst hodnoty všech řádků z celého jednoho sloupce. Jak mám toto provést?

Děkuji za odpověď

headDD
Visual Basic › Otevírání
29. 3. 2012   #155643

#2 pistolnik
Díky, toto mi pomohlo.

headDD
Visual Basic › Otevírání
23. 3. 2012   #155397

Ahoj, chci aby se v mém programu po zmáčknutí tlačítka otevřel soubor v TextBoxu. Ale chci aby se tam otevřel soubor, který vytvořím přímo v projektu (Add, New Item, TextFile). Ale tento soubor se mi neotevře, takže otázka zní: dá se otevřit soubor přímo z projektu? Nebo musím pokaždé uvést cestu (C:\...). 

Mám tento kód, ale po zmáčknutí zůstáva TextBox prázdný.

Imports System.IO
...

Dim soubor As StreamReader

        soubor = New StreamReader("soubor.txt")
        TextBox2.Text = soubor.ReadToEnd
        soubor.Close()
Jiří Zdvomka
Visual Basic › Uložení vlastností
23. 3. 2012   #155394

Poradíte mi někdo prosím?
Děkuji za odpověďZdravím, v mojí aplikaci můžu měnit barvu pozadí a tlačítek pomocí výběru schématu z ComboBoxu. Všechno je v pořádku, ale nevím jak uložit barvu, aby byla stejná i při opětovném spuštění aplikace.

Dim dlg As New Dialog3
        If dlg.ShowDialog = DialogResult.OK Then
            Dim VyberSchematu As Object = dlg.ComboBox1.SelectedItem 'vybrat item z combo boxu

            Select Case VyberSchematu
                Case "Modrá"    'změnit schéma na modré
                    Me.ForeColor = Color.Blue
                    Me.BackColor = Color.Blue

                Case "Červená"
                    Me.ForeColor = Color.Red    'změnit schéma na červené
                    Me.BackColor = Color.Red

                Case "Zelená"
                    Me.ForeColor = Color.Green  'změnit schéma na zelené
                    Me.BackColor = Color.Green

                Case "Žlutá"
                    'změnit schéma na žluté
                    Me.BackColor = Color.Yellow

                Case "Šedá"
                    Me.ForeColor = Color.Gray   'změnit schéma na šedé
                    Me.BackColor = Color.Gray

Poradíte mi někdo prosím?
Děkuji za odpověď

Ervin Coep
Visual Basic › Výběr měny
20. 3. 2012   #155246

#5 zlz

Ano, měl jsi pravdu. Já jsem to akorát špatně pochopil.

Mělo to být takot 

Dim dlg As Dialog2

If dlg.ShowDialog() = DialogResult.OK Ten
Dim VýběrMěny As String = dlg.ComboBox1.SelectedItem
...

Děkuji za pomoc.

Ervin Coep
Visual Basic › Výběr měny
19. 3. 2012   #155203

#2 zlz

Napsal jsem to podle tebe, a po vybrání měny se nic neděje. Program zobrazuje formulář jako by nic, a jiná tlačítka fungují.

Ervin Coep
Visual Basic › Výběr měny
18. 3. 2012   #155156

Pokouším se vylepšit prorgram z článku
http://www.vbnet.cz/…em_http.aspx
tak, abych si mohl vybrat měnu, kterou chci.

Po stisknutí tlačítka se zobrazí dialog, ve kterém si pomocí ComboBoxu vyberu jednu z měn.

Kód jsem upravil takto 

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim dlg As New Dialog2
        Dim VyberMeny As String = dlg.ComboBox1.ValueMember
        Dim kurz As Single = 0
        dlg.ShowDialog()

        Try
            'vystavit požadavek na dnešní den
            Dim url As String = String.Format("http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt?date={0:dd.MM.yyyy}", Now)

            Dim rq As HttpWebRequest = HttpWebRequest.Create(url)
            'odeslat jej na server a získat odpověď

            Dim rs As HttpWebResponse = rq.GetResponse()
            'vytvořit StreamReader pro pohodlnou práci

            Dim sr As New IO.StreamReader(rs.GetResponseStream())
            'projít řádky
            While Not sr.EndOfStream

                Dim s As String = sr.ReadLine()
                Select Case VyberMeny
                    Case dlg.ComboBox1.ValueMember("USD")
                        If s.StartsWith("USA|") Then

                            kurz = CDbl(s.Substring(s.LastIndexOf("|") + 1))
                            MsgBox(String.Format("Aktuální kurz: 1 USD = {0:c}", kurz))

                        End If
                    Case dlg.ComboBox1.ValueMember("EUR")
                        If s.StartsWith("EMU|") Then
                            kurz = CDbl(s.Substring(s.LastIndexOf("|") + 1))
                            MsgBox(String.Format("Aktuální kurz: 1 EUR = {0:c}", kurz))

                        End If
                    Case dlg.ComboBox1.ValueMember("GBP")
                        If s.StartsWith("Velká Británie|") Then
                            kurz = CDbl(s.Substring(s.LastIndexOf("|") + 1))
                            MsgBox(String.Format("Aktuální kurz: 1 GBP = {0:c}", kurz))

                        End If
                End Select

            End While

            'zavřít StreamReader
            sr.Close()

            'zavřít spojení
            rs.Close()

        Catch ex As Exception
            MsgBox("", , ex.Message)
        End Try
    End Sub


Ale po vybrání měny mi to hodí chybovou hlášku "Převod řetězce USD na typ Integer není platný". Přemýšlel jsem nad tím nevím si rady, jak to udělat aby mi to šlo.
Neví prosím někdo co mám upravit? (jsem začátečník, tak mi to kdyžtak vysvětlete nějak polopaticky)
Děkuji za odpověď

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý