Avatar billede decrypto Nybegynder
24. april 2005 - 22:23 Der er 18 kommentarer og
1 løsning

Hvorfor får jeg ikke mit text felt ud fra MySQL db?

Jeg har et et text felt i min MySQL database, hvilket står som (MEMO), når man umiddelbart kigger på det i min GUI (MySQL front).

Jeg har lavet en SQL der helt rigtigt henter mit text felt ud, men når jeg forsøger at skriver det ud, kommer der ikke noget, er der nogen der kan se, hvad der er galt?

Jeg mistænker følgende linje ikke til at gøre det jeg beder den om:

ProductDescription = (string) rdr["product_description"];

Er det rigtigt at caste et db text felt til en string.
Avatar billede arne_v Ekspert
24. april 2005 - 22:26 #1
Det burde det være.

Får du null eller "" eller en exception ?
Avatar billede arne_v Ekspert
24. april 2005 - 22:27 #2
nogle gange kan det være lærerigt at udskrive:

rdr.GetValue(kolonne).GetType().Name
Avatar billede decrypto Nybegynder
24. april 2005 - 22:28 #3
Jeg får hverken null eller en exeption...
Avatar billede decrypto Nybegynder
24. april 2005 - 22:29 #4
...og der er indhold i databasen...
Avatar billede decrypto Nybegynder
24. april 2005 - 22:29 #5
Her er min SQL:

string strSql = "SELECT product.id AS product_id, product.name AS product_name, product.price AS product_price, photo.id as photo_id, product.description as product_description FROM product INNER JOIN photo ON (product.photo_id = photo.id) WHERE product.id = "+ ProductId;
Avatar billede decrypto Nybegynder
24. april 2005 - 22:30 #6
Som du kan se hiver jeg ogsp produkt navnet ud, og det er faktisk det jeg får ud igen istedet for product_description.
Avatar billede decrypto Nybegynder
24. april 2005 - 22:32 #7
Jeg har tjekket og dobbeltjekket og der ikke noget, jeg har stavet forkert...jeg bruger product_description etc.
Avatar billede arne_v Ekspert
24. april 2005 - 22:32 #8
Hvordan ser "hent ud af reader" koden ud ?
Avatar billede arne_v Ekspert
24. april 2005 - 22:33 #9
Mine tanker går lidt i retning af at du måske skal hente felterne i samme
rækkefølge som de står i SELECT
Avatar billede decrypto Nybegynder
24. april 2005 - 22:35 #10
public class ProductData{
    private int                _ProductId;
    private string            _ProductName;
    private decimal            _ProductPrice;
    private int                _ProductPhotoId;
    private string            _ProductDescription;
           
    // Constructor
    public ProductData()
    {
    }

    // Properties
    public int ProductId
    {
        get    { return _ProductId;}
        set    { _ProductId = value;}
    }
    public string ProductName
    {
        get    { return _ProductName;}
        set    { _ProductName = value;}
    }
    public decimal ProductPrice
    {
        get    { return _ProductPrice;}
        set    { _ProductPrice = value;}
    }

    public int ProductPhotoId
    {
        get    { return _ProductPhotoId;}
        set    { _ProductPhotoId = value;}
    }

    public string ProductDescription
    {
        get    { return _ProductDescription;}
        set    { _ProductDescription = value;}
    }
   
}

public ArrayList GetProduct(int ProductId)
        {   
           
            string strSql = "SELECT product.id AS product_id, product.name AS product_name, product.price AS product_price, photo.id as photo_id, product.description as product_description FROM product INNER JOIN photo ON (product.photo_id = photo.id) WHERE product.id = "+ ProductId + "";
            DbConnector dbCon = new DbConnector();
            MySqlDataReader rdr = dbCon.DbConnect(strSql);
           
            ArrayList arrLstProduct = new ArrayList();
           
            if (rdr.Read())
            {
                ProductData p = new ProductData();
                p.ProductId                            =                (int) rdr["product_id"];
                p.ProductName                        =                (string) rdr["product_name"];
                p.ProductPrice                        =                Convert.ToDecimal(rdr["product_price"]);
                p.ProductPhotoId                    =                (int) rdr["photo_id"];
                p.ProductDescription                =                (string) rdr["product_description"];
                arrLstProduct.Add(p);
            }


*******

private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            Product a = new Product();
            ArrayList ProductArray = a.GetProduct(ProductID);
               
            System.Web.HttpContext.Current.Response.Write(ProductArray.Count);
           
            foreach(ProductData p in ProductArray)
            {
                ProduktNavn.Text = p.ProductName.ToString()+"<br>"+p.ProductPrice.ToString()+"<br>---->"+p.ProductDescription.ToString();
                PhotoId.ImageUrl = "imageServer.aspx?ImageId="+p.ProductPhotoId.ToString();
            }
        }
Avatar billede decrypto Nybegynder
24. april 2005 - 22:36 #11
foreach(ProductData p in ProductArray)
            {
                ProduktNavn.Text = p.ProductName.ToString()+"<br>"+p.ProductPrice.ToString()+"<br>---->"+p.ProductDescription.ToString();// HER KOMMER NAVNET UD ISTEDET FOR ProductDescription
                PhotoId.ImageUrl = "imageServer.aspx?ImageId="+p.ProductPhotoId.ToString();
            }
Avatar billede arne_v Ekspert
24. april 2005 - 22:39 #12
Hmm.

Det ser meget OK ud.
Avatar billede decrypto Nybegynder
25. april 2005 - 12:53 #13
Ja, det vil jeg også mene....jeg prøver igen, når jeg engang er kommet hjem.
Avatar billede decrypto Nybegynder
25. april 2005 - 13:09 #14
Hey fandt lige en artikel på nettet. Måske er du også interesseret.

Can't read BLOB fields from MySQL using ODBC.NET
http://www.dotnet247.com/247reference/msgs/28/140539.aspx
Avatar billede decrypto Nybegynder
25. april 2005 - 13:24 #15
Men det er jo et 'text' felt hos mig, men det bliver vel ikke opfattet som blob? eller hvad?
Avatar billede arne_v Ekspert
25. april 2005 - 13:31 #16
TEXT og BLOB er forskelligt.

Men bruger du OdbcConnection ?
Avatar billede decrypto Nybegynder
25. april 2005 - 14:51 #17
Nej, jeg bruger MySQL database connector,
Avatar billede decrypto Nybegynder
25. april 2005 - 14:54 #18
Når jeg med min MySQL GUI ser på data, så står der (MEMO) i feltet, men jeg kan se indholdet af feltet i en editor nedenunder. Felttypen er TEXT, men jeg forstår ikke, hvorfor jeg ikke kan få det frem.
Avatar billede decrypto Nybegynder
25. april 2005 - 20:58 #19
Jeg fik det løst.. bare et sprørgsmål om at kunne kompilere ordentligt.
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