Entwickler-Ecke

ASP.NET und Web - GridView Problem mit Daten binden


Solala - Fr 18.02.11 10:26
Titel: GridView Problem mit Daten binden
Hatte bis jetzt nur kleine Anwendungen entwickelt, nun wollt ich mich
auch mal in Webseiten probieren... allerdings hang ich noch nie so wie hier..

Hier einmal der Code :


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Configuration;
//using System.Web.UI.WebControls;
using System.Drawing;
using System.IO;
using System.Data;

public partial class MainSite : System.Web.UI.Page
{
    ConnectionStringSettings connectionInfo;
    DataTable datTable;
    List<ProduktAktion> aktList;
    Image noPicture;

    protected class ProduktAktion
    {
        Image picture { get; set; }
        String description { get; set; }
        String mixes { get; set; }
        String unit { get; set; }
        String price_original { get; set; }
        String price_aktion { get; set; }

        protected internal ProduktAktion(Image new_pic, String new_desc, String new_mixes, String new_unit, String new_price_or, String new_price_akt)
        {
            picture = new_pic; description = new_desc; mixes = new_mixes; unit = new_unit; price_original = new_price_or; price_aktion = new_price_akt;
        }
        
    }

    protected void Page_Load(Object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
            GridViewAktion.DataBind();
    }
    
    protected void GridView_Load(object sender, EventArgs e)
    {
        noPicture = Image.FromFile(@"C:\Users\Thomas\Documents\Visual Studio 2010\WebSites\SchTeddUndMehr\noImage.bmp");
        aktList = new List<ProduktAktion>();
        connectionInfo = ConfigurationManager.ConnectionStrings["RefToDatabase"];
        SqlConnection connection = new SqlConnection(connectionInfo.ConnectionString);

        SqlCommand selectCommand = new SqlCommand("select Bild, Beschreibung, Menge, Einheit, Preis_netto, Rabatt, MWST, Aktion, Aktiv from Produkte", connection);

        selectCommand.Connection.Open();

        SqlDataReader dataReader = selectCommand.ExecuteReader();


        double dnormalPrice;
        decimal normalPrice, aktionPrice;

        Image aPic = null;

        datTable = new DataTable();
        datTable.Columns.Add("Bild");
        datTable.Columns.Add("Beschreibung");
        datTable.Columns.Add("Menge");
        datTable.Columns.Add("Einheit");
        datTable.Columns.Add("Preis normal");
        datTable.Columns.Add("Preis jetzt");
        
               
        while (dataReader.Read())
        {
            if ((bool)dataReader["Aktion"] && (bool)dataReader["Aktiv"])
            {
                dnormalPrice = (double)dataReader["Preis_netto"] * ((((double)(int)dataReader["MWST"]) / 100) + 1);
                normalPrice = (decimal)dnormalPrice;
                aktionPrice = (decimal)(dnormalPrice - (dnormalPrice * (double)dataReader["Rabatt"] / 100));
               
                if (System.DBNull.Value != dataReader["Bild"])
                {
                    Byte[] bytePic = new Byte[0];
                    bytePic = (Byte[])dataReader["Bild"];
                    MemoryStream streamPic = new MemoryStream(bytePic);
                    aPic = Image.FromStream(streamPic);
                }
                else
                    aPic = noPicture;

                DataRow newRow = datTable.NewRow();
                newRow["Bild"] = aPic;
                newRow["Beschreibung"] = dataReader["Beschreibung"].ToString();
                newRow["Menge"] = String.Format("{0:f}", (double)dataReader["Menge"]);
                newRow["Einheit"] = dataReader["Einheit"].ToString();
                newRow["Preis normal"] = normalPrice.ToString("C2"new System.Globalization.CultureInfo("de-DE"));
                newRow["Preis jetzt"] = aktionPrice.ToString("C2"new System.Globalization.CultureInfo("de-DE"));

                datTable.Rows.Add(newRow);
                                
                //aktList.Add(new ProduktAktion(noPicture, dataReader["Beschreibung"].ToString(), String.Format("{0:f}", (double)dataReader["Menge"]), dataReader["Einheit"].ToString(), normalPrice.ToString("C2", new System.Globalization.CultureInfo("de-DE")), aktionPrice.ToString("C2", new System.Globalization.CultureInfo("de-DE"))));
            }
        }
               
        dataReader.Close();
        connection.Close();

        GridViewAktion.DataSource = datTable;
        GridViewAktion.DataBind();
                
        
           
    }

    protected void ButtAktion_Click(object sender, EventArgs e)
    {

    }
}


Es funktioniert soweit alles, außer das die eingelesenen Daten "nicht" im GridView angezeigt werden...

Such jetzt schon 3 Tage im Internet und bin langsam am verzweifeln, kann mir da bitte jemand weiterhelfen ?

Und wenn mir einer den unschönen Fehler erklären könnte :

C#-Quelltext
1:
2:
//using System.Web.UI.WebControls;
using System.Drawing;

Vielen Dank schon mal !

Moderiert von user profile iconKha: Code- durch C#-Tags ersetzt


Solala - Mo 21.02.11 15:12

Also diese Sache mit


Quelltext
1:
2:
//using System.Web.UI.WebControls;
using System.Drawing;


hat sich erledigt, war leichter zu finden..

Aber zu dem Anderen hätt ich schon gern eine kleine Hilfe wenn möglich... :?