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

Anonymní profil Michal – Programujte.comAnonymní profil Michal – Programujte.com

 

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

.NET › C# připojení k sql
3. 5. 2013   #175723

Ahoj,

když to tak čtu, tak musím přemýšlet nad tím, co píšeš. Začnu tím C#, rozhodně bych si koupil knihu, nějakou opravdu dobrou a začal se šrotit. Na netu je milión návodů a z toho 95% jsou úplně na nic. Když si koupíš knihu od známého autora, tak tě to bude bavit, protože to bude fungovat. Třeba kniha Visual C# od Sharpa(jak hezké jméno, že:) je třeba dobrá. Je tam vysvětleno vše od úplných začátků. Člověk se učí programovat celý život, to není tak, že za rok umíš vše, ne ne. A k tomu snu. Jak velký sen to je, když ho chceš zrušit po 3 dnech? Za sny se má bojovat, né před nima utíkat...

MS SQL › Výkon
3. 5. 2013   #175722

Ok, děkuju.

.NET › Zobrazit byte[] pomocí string
3. 5. 2013   #175711

Tak už to funguje:)

v image mám Visible='<%# obrazek1(image1).Length < 1 ? false : true %>'

a metodu:

public byte[] obrazek1(byte[] image1)
    {

        SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["db"].ConnectionString);
        SqlCommand cmd = new SqlCommand("select ** from **  where id = '" + HttpContext.Current.Request.QueryString["id"] + "'", con);
        con.Open();
        SqlDataReader rd = cmd.ExecuteReader();
        rd.Read();
        image1 = (byte[])rd["**"];
        return image1;

    }

Díky za reakce

Michal
.NET › Zobrazit byte[] pomocí string
3. 5. 2013   #175710

Mám uložený obrázek v db, varbinary. Jako výchozí hodnota je byte[0], protože uživatel nevloží obrázek a do varbinary nelze ukládat hodnota null. Když dám select, tak mám v DB hodnotu 0x. Na výpis obrázku musím použít <asp:Repeater.., je to výpis inzerátu. Takže k tomu dalších X věcí, ale jde mi jen o obrázek. Tak a problém je v tom, že když použiju nějaký Handler na výpis obrázku, tak je to sice hezké, ale když je hodnota 0x nějakého obrázku, tak se mi vrátí "prázdný" image, což je i logické:) A zatím mě nenapadlo jiné řešení, než přes if zkontrolovat délku, nebo hodnotu... Mezi další pokusy patří nastavení visible image na false, pokud bude hodnota 0x. Pokud ne, bude image visible true. Mám to napsané takto visible='<%# (byte[])Eval("obrazek") == 0 ? false : true %>'. To boxování asi není ok, nevím, jak s tím bytem takto pracovat... Když tahám string, int atd, tak je to ok, ale u bytu fakt nevím.. 

Michal
MS SQL › Výkon
3. 5. 2013   #175709

Děkuju za reakci.

S těmi tabulkami jsem to myslel tak, že mám 15 kategorií(auta, pc, zahrada apod..). Třeba kategorie automoto má tabulky auta, aznacka a autaprislusenstvi + další, ale pro příklad uvedu jen tyhle 3. V "auta" je ID a nazev znacky. V "aznacka" je vse ostatni, tzn jmeno, datum, atd., proste vše co se dává do inzerátu. A já to mám vyřešené tak, že v tabule aznacka mám FK do tabulky auta, který je spojený se sloupcem ID. Tzn., že v tabulce auta mám takovéto hodnoty: ID1 = audi, ID2 = BMW atd., je jich celkem 49. A když se ukládá záznam do tabulky aznacka, tak se tam váže sloupec značka s ID z tabulky auta... Pro výpis je použitý inner join where ID = ID. Takhle to funguje dobře, jen nevím, jestli to bude dobré i na výkon:) Ale máš pravdu, že to se dělá až na konci.

Michal
.NET › Zobrazit byte[] pomocí string
2. 5. 2013   #175692

Ještě abych upřesnil, když do db vložím .... byte[0], tak se uloží 0x a tu nulu potřebuju dostat do stringu...

Michal
.NET › Zobrazit byte[] pomocí string
2. 5. 2013   #175690

Ahoj, už jsem vyčerpal snad vše, co se dalo.

Mám třeba byte[] b = new byte[123];

a jak to vypsat na string, prosím? Buď se mi nevypíše nic a nebo System.Byte[]...

Zkoušel jsem encoding, stringbuilder atd., nic.

Děkuju.

Michal
.NET › Jak se naučit xna
30. 4. 2013   #175598
Michal
.NET › Více obrázků
29. 4. 2013   #175562

Vyřešil jsem to takto:

Handler:

if (context.Request.QueryString["img"] == "1")
        {
            context.Response.BinaryWrite((byte[])dr["fotka1"]);
        }
        else if (context.Request.QueryString["img"] == "2")
        {
            context.Response.BinaryWrite((byte[])dr["fotka2"]);
        }

a <asp:Image ....

    <asp:Image ID="Image1" runat="server" Width="400px" Height="290px" ImageUrl=<%# "~/Handler.ashx?id=20&img=1" %> />
    <asp:Image ID="Image2" runat="server" Width="400px" Height="290px" ImageUrl=<%# "~/Handler.ashx?id=20&img=2" %> />

Třeba to někomu taky pomůže:)

Michal
.NET › Více obrázků
29. 4. 2013   #175543

Ok, tak vyřešeno   

Michal
.NET › Více obrázků
29. 4. 2013   #175542

Zdravím,

poradil by mi někdo, prosím, jak přes Handler.ashx zobrazit více obrázků? 

Mám: ImageUrl=<%# "~/Handler.ashx?id=" + Eval("id") %> /> třeba 3x za sebou (potřebuju 3 obrázky) a kód z Handleru mám:

SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["db"].ConnectionString);
        SqlCommand cmd = new SqlCommand("select fotka1, fotka2  from neco where id =" + context.Request.QueryString["id"], con);
        cmd.CommandType = CommandType.Text;
        con.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            context.Response.ContentType = "image/jpg";
            context.Response.BinaryWrite((byte[])dr["fotka1"]);
            context.Response.BinaryWrite((byte[])dr["fotka2"]);
        }
       
        dr.Close();

Problém je, že i když tam dám miliardu <asp:Image, tak se mi vždy zobrazí jen ten první v BinaryWrite() tzn., fotka1... 

Repeater nefunguje, dotaz do DB je OK, i vracené ID jsou OK. Jediný problém je, že se mi zobrazuje od každého ID jen jedna fotka ve sloupci fotka1, ale fotka2 atd. se už prostě nenačtou.

Ví někdo, jak to udělat, aby každej Image měl svůj obrázek, prosím?

Díky

Michal
MS SQL › Výkon
28. 4. 2013   #175536

Dobrý den,

dělám inzertní server a dumám na tím, co bude mít lepší výkon.

Mám pár tabulek, řekněme Kategorie1(ta, do které budou vstupovat jiné) a pak Auta(49značek), Motorky(20značek), atd..

Jelikož v tabulce Kategorie1 můžu mít jen jeden PK, tak přede mnou stojí otázka, jak to udělat. Pomocí FK to jde, ale to bych musel v mém případě vytvořit asi 100tabulek. A nebo udělat to bez FK, prostě se jen jednoduše dotazovat pomocí inner join a porovnávat stejné sloupce, ale to mi přijde divné... Snad jsem to napsal alespoň trochu sorzumitelně. 

Díky.

 

 

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