also xls? was ist denn da schwieriger dran? naja.. ich gucks mir mal an 😃
hi...
mirs grade langweilig und da wollte ich was sinnvolles machen...
hab mir ne Bibliothek erstellt, die mir bestimmte typen in files schreiben soll...
momentan hab ich DataTable => CSV,TXT und TreeView => XML
jetzt fällt mir aber nicht ein was man noch braucht...
was fehlt da noch? suche oft benötigte fälle
es ist ne DataGridViewImageColumn.. also daran kanns nicht liegen....
ich verstehe es echt nicht...
eigentlich müsste alles stimmen...
nur die zuweisung des Bildes funktioniert nicht....
weiß wirklich keiner was es sein könnte?
hi...
ich lasse in einigen spalten den inhalt durch bilder repräsentieren...
!!!!!!!!!!!!das ging eigentlich bis eben soweit....!!!!!!!!!!!!
die einzige änderung seit dem, ich habe eine Form eingefügt, die aber nichts mit der DataGridView zu tun hat....
das bild rufe ich so in die zelle...
this.dgv1.Rows[i].Cells["Info"].Value = VToolNG.Properties.Resources.Info;
Das Bild wird auch gefunden und ist nicht null...
nach der zuweisung allerdings ist die spalte null, und ein Fehlerbild wird mir angezeigt.. (Weißes Blatt mit Rotem X drin).
woran kann das liegen?
hi...
wie der topic schon sagt bekomme ich bei der anzeige meiner datatable diese exception.
kann man das irgendwie umgehen...
es sind wirklich verdammt viele datensätze....
hab diesen fehler momentan durch try-catch abgefangen...
ich würde aber gerne alles angezeigt bekommen.... sind knapp 500.000 zeilen
muss ich jetzt mit DataViews die anzeige einschränken? oder gibt es eine möglichkeit alle 500k anzeigen zu lassen?
das geht doch per oledb.. hab ich zumindest mal iwo gelesen..
oder braucht man dafür exel?
wie wäre es denn mit frontpage?
einfach zu bedienen und leicht verständlich...
einziger nachteil : schlechter code wird ausgespuckt...
aber es funktioniert.. das ist die hauptsache 😉
nein, kann man nicht und sollte man vor allem nie tun.
😜 das widerspricht sich aber o.O
erstell dir ein dummy form und fülle diese 🙂
kann man nicht über die controls der form auf des jeweilige element zugreifen?
oder über das jeweilige child..
der nachteil an xp (der bei vista nicht existiert) ist, dass xp nach einiger zeit verdammt langsam wird... iwann hilft auch tuneup usw nix mehr...
bei vista läuft alles relativ stabil...
Mittels max(...) den letzen Datensatz zu bestimmten ist keine gute Idee, weil du nicht gewährleisten kannst, ob zwischenzeitlich (also nach deinem max und vor deinem Speichern), eventuell ein anderer Client an der Tabelle ein Insert ausgeführt hat.
transaktion?! 🙂
geht das überhaupt?
die exec in eine variable schreiben?
kann man nicht einfach ein object zurückgeben und es nachher so verwenden wie man möchte?
(TestClass)object...
?!
musst mal codeproject oder sourceforge gucken...
so ähnlich hab ich das auch gemeint 😉
ist ja als string 🙂
DECLARE @sqlString AS NVARCHAR(MAX)
set @sqlString= 'INSERT INTO '+@tabelle+'
([name]
,[vorname])
VALUES
('''+@name+'''
,'''+@vorname+''')'
exec (@sqlString)
so hätte ich es mir gedacht 🙂
probiers doch aus bevor du fragst ob das geht 🙂
wenn nicht kannst du das ganze als string deklarieren und deine werte einfügen und am ende ein exec auf dein string machen...
das müsste gehen..
habs jetzt mal so gelöst...
private string stringZerlegen(string x,bool verschluesselung)
{
int schluessel = 0;
string text = String.Empty;
foreach (char c in x)
{
if (verschluesselung)
{
schluessel = Convert.ToInt32(c);
text += Convert.ToChar(verschluesseln(schluessel));
}
else
{
schluessel = Convert.ToInt32(c);
text += Convert.ToChar(entschluesseln(schluessel));
}
}
return text;
}
private int verschluesseln(int x)
{
int schluessel = x;
int ergebnis = 1;
int exponent = 23;
int modulo = 143;
int sum = 0;
int mask = 1;
while (sum < exponent)
{
if ((exponent & mask) != 0)
{
ergebnis = (ergebnis * schluessel) % modulo;
sum = sum + (exponent & mask);
}
schluessel = (schluessel * schluessel) % modulo;
mask = mask << 1;
}
return ergebnis;
}
das komische ist nur, "u" und "n" 's werden zu "+"... sonst stimmt alles o.O
(beim erneuten entschluesseln)
edit: Fehler gefunden.. die richtextbox in der ich alles anzeige wandelt die ascii zeichen der werte 10,11,13 in \n um und somit sind alle 10, was decodiert ein + wird
hmm.. nicht das ich wüsste.. sonst würden nicht so viele projekte sich mit dem thema befassen....
dockmanager control ist aber verdammt gut... vor allem funtkionierts genau wie in VS und die Docking Symbole sehen auch gleich aus... 🙂
ich arbeite eigentlich meistens damit...
bestimmt so ein sniper der sich selber ein fadenkreuz baut, damit er nicht anvisieren muss bzw vorteile hat im nahkampf^^
DockManager Control von Weifen Luo
😉
nee.. stimmt doch nciht...
ergebnis der modulo ist hier in dem fall 74...
müsste aber 51 rauskommen.. (windows taschenrechner)...
woran kann das liegen?
ah.. ok..
foreach (char c in x)
{
schluessel = (double)Convert.ToInt32(c);
zwischenergebnis = Math.Pow(schluessel, (double)23);
schluessel = zwischenergebnis % 143;
text += Convert.ToChar((int)schluessel);
}
geht..
hi..
ich beschäftige mich grade ein bisschen mit Verschlüsselung und wollte ein beispiel nachprogrammieren...
leider komme ich nicht weiter...
ich habe einen text den ich zeichenweise verschlüsseln möchte...
foreach (char c in x)
{
schluessel = Convert.ToInt64(c);
}
so habe ich schonmal den zugehoerigen ascii wert...
zum potenzieren braucht man double werte
Math.Pow((double)schluessel,(double)23);
für 116 kommt raus "3,0376221587373076411905554191473e+47";
bis dahin stimmts noch...
mit diesem wert muss ich aber noch modulo rechnen.. und das geht von double nicht...
wenn ich den wert aber umwandeln möchte übersteigt er den wert von dem datentyp long, und es kommt ein negativer wert raus....
wie kann ich das richtig machen?
bekommt man da nicht einfach ne dritte xml datei die alle unterschiede enthält?
bzw ne html datei?
auf sowas kann man sich nicht richtig verlassen...
ich hab mir selber so nen xml vergleich geschrieben, auf mein problem zugeschnitten...
beispiel mit ipconfig
Process proc = new Process();
proc.StartInfo.FileName = Environment.SystemDirectory + @"\ipconfig.exe";
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
StreamReader myStreamReader = proc.StandardOutput;
while (!myStreamReader.EndOfStream)
{
if(!myStreamReader.ReadLine().Equals(""))
listBox1.Items.Add(myStreamReader.ReadLine());
}
proc.WaitForExit();
proc.Close();
myStreamReader.Close();
vllt gehts aber auch besser^^
hmm.. hab mal ne frage..
warum macht man es nciht einfach so?
public interface IAttributes
{
bool isUgly {get; set;}
bool attitude { get; set; }
}
und das dann implementieren?
ok.. hat sich erledigt.. hab mein vorhaben aufgegeben...
ok.. es wird noch besser...
anscheinend ists egal was ich auskommentiere...^^
hab jetzt mal
this.TabText = "Suchergebnis";
auskommentiert nachdem wieder der fehler kam...
danach gings...
neu gestartet.. ging nicht mehr...
kommentar aufgehoben.. ging...
neugestartet.. ging nicht mehr...
jetzt ist mir was aufgefallen, das kann nciht mehr normal sein....
habe diese zeile auskommentiert...
column.CellTemplate.Style.BackColor = Color.Beige;
dann gings...
checke ich jetzt allerding die checkbox in der letzen zeile..(alles null),
dann tritt dieser fehler wieder auf...
auch beim erneuten starten, oder visual studio neu starten.. der fehler tritt weiterhin auf....
wenn ich allerdings den kommentar der oben genannten zeile lösche, sodass die zellen wieder beige sind, funktionierts wieder....
bis ich wieder auf die letzte checkbox klicke....
jetzt bin ich wirklich ratlos?!?!?!
Guten morgen,
ich wollte meiner DataGridView eine CheckBoxColumn hinzufügen...
nach dem Beispiel in der msdn
also habe ich diesen code hier eingefügt...
private void InitializeCheckBoxColumn()
{
DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
{
column.HeaderText = "Info anzeigen !!!";
column.Name = "CheckBoxColumn";
column.AutoSizeMode =
DataGridViewAutoSizeColumnMode.DisplayedCells;
column.FlatStyle = FlatStyle.Standard;
column.ThreeState = false;
column.CellTemplate = new DataGridViewCheckBoxCell();
column.CellTemplate.Style.BackColor = Color.Beige;
}
dgv1.Columns.Insert(0, column);
}
die methode wird nach der Datenbankverbindung aufgerufen, wenn eine datatable gefüllt ist, und die datasource zugewiesen wurde...
dgv1.SuspendLayout();
dgv1.DataSource = dt;
this.TabText = "Suchergebnis";
InitializeCheckBoxColumn();
dgv1.ResumeLayout();
es treten immer verschiedene fehler auf.. aber ich schaffe nur einen zu reproduzieren
TargetInvocationException.. (Ein Aufrufziel hat einen Ausnahmefehler verursacht.)
mit einzelschritt habe ich festgestellt das der fehler hier auftritt...
dgv1.DataSource = dt;
wenn ich die methode auskommentiere, die die CheckBoxcolumn anlegt funktionierts, obwohl die ja erst 2 zeilen später aufgerufen wird..
das lustige an der sache ist, manchmal gehts aber auch so...
ich hab echt keine ahnung an was es liegen kann...
vllt weiß einer von euch rat?
Ich sollte dann Beispielsweise so drauf zugreifen kommen:
string meinString = Array[Guid][var3];
Warum holst du nicht ne List<Dictionary<string,string>> ?
dann kannst du genau so drauf zugreifen...
dictionaryList["Guid1"][Var1]...
und hinzufügen kannste dann über dictionaryList["Guid1"].Add......
weiß ich nciht.. wo sieht man das denn?
ich kann aber über Properties.Resources... drauf zugreifen...
leider geht das nicht so einfach, da ich 30 bilder drin habe und über
for(int i = 0;i<.....)
(System.Drawing.Image)(resources.GetObject(i))
drauf zugegriffen habe...
um das jetzt umzusetzen müsste ich 30 if else anweisungen schreiben oder?
if(i == 1)
Properties.Resources.1
else if..
oder gibts noch ne andere möglichkeit?
hi...
ich habe im designer meiner form einiges auskommentiert um etwas zu testen
(durch DockManagerControl habe ich keine Sicht mehr auf entwurf, da nichts erkannt wird. Ist aber in dem fall vollkommen normal)
jetzt habe ich die ganzen InitializeComponents auskommentiert....
Blick auf Entwurf geworfen, und danach wieder alle kommentare aufgehoben...
seit dem werden keine bilder mehr in meiner datagridview angezeigt, die ich über
(System.Drawing.Image)(resources.GetObject(test))
lade...
resources => ressourcen manager...
ich habe absolut nichts verändert, und auch alles nochmal rückgängig gemacht mit strg+z
aber es geht nicht mehr...
ich habe keine ahnung warum..
es werden auch keine fehler angezeigt.. nur die bilder werden nicht mehr angezeigt...
was könnte der fehler sein? o.O
bei mir tritt kein fehler auf...
ich habe c# angefangen mit:
Windows-Programmierung mit Visual C# (Microsoft Press),
Datenbank-Programmierung mit Visual C# 2005 (Microsoft Press),
C# 3.0 Design Patterns (O'Reilly),
Programmieren mit C Sharp (O'Reilly)
und www.mycsharp.de 🙂
hol dir doch ne suchengine^^
die lucene engine gibts zb auch für .net 🙂
weiß wieder wie es heißt... smbdie
solange keine firewall aktiv ist kann der pc runtergefahren werden...
wie funktioniert sowas?
hehe^^
das ist ne idee^^
wenn sie mal wieder sims spielt, einfach die ganze familie in den pool stecken und ertrinken lassen muhahaha :evil:
aber noch was anderes....
ich hatte mal ein programm das übers netz pcs runterfahren konnte...
wurde aber als virus erkannt und irgendwann hab ichs gelöscht...
damit hat alles super funktioniert...
sogar laufende programme am rechner wurden abgewürgt und dann runtergefahren...
hmm..
geht das auch ohne rechte irgendwie?
dann könnte ich meine freundin ein bisschen ärgern 😉
hi..
in meinem hausnetzt sind mehrere pcs...
mein schlafzimmer ist in der unteren etage...
wenn ich nun oben noch nen pc anhabe vorm schlafengehen lass ich ihn meistens aus faulheit laufen 🙂
ist es irgendwie möglich übers netzwerk den pc runterfahren zu lassen?
gesetzt hab ichs...
IIS-Manager -> Rechtsklick auf Webservice -> Eigenschaften -> Konfiguration
und dann alle einträge bearbeitet^^
naja.. hauptsache es funktioniert...
ok.. jetzt funktionierts...
hab manuell überall wo framework/1.1.... gestanden hat, ersetzt durch framework/2....
das bild ist vom server...
gut geraten... aber die datei befindet sich in diesem ordner...
bei mir funktionierts ja auch...
nur auf dem server nciht...
der server läuft mit windows server 2003...
auf meinem lokalen rechner ist asp.net 2.0.... eingestellt..
und auf dem server 1.1.....
nur leider habe ich noch nicht gefunden wo ich das umstellen kann....
einen asp reiter in den iis einstellungen gibts dort nämlich nicht...
edit:
was mich aber wirklich stört ist, das ich letzte woche schonmal einen webservice auf den server gespielt habe.. da hatte ich das gleiche problem .. aber mit ein wenig rumklicken ( 😉 ) hats funktioniert...
bei diesem webservice habe ich nun die gleichen einstellungen wie bei dem anderen... aber es funktioniert nichts...
hi..
habe meinen webservice lokal auf meinen pc erstellt...
jetzt möchte ich ihn auf dem server integrieren...
aber dort tritt dauernd ein fehler auf..
ich habe mal den quelltext rüberkopiert und in vs laufen lassen, und dort gehts...
es kommt immer der gleiche fehler
siehe anhang...
wie bekomme ich den weg?
wie könnte ich denn den html string zusammenbasteln um das alles anzuzeigen?
am besten in tabellenform
string html = "<table>";
foreach(string attribut in attrList)
{
htmlstring += "<tr><td><b>"+attribut+"</b>/td>";
foreach(Dictionary<string,string> dic in dicList)
{
htmlstring += "<td>"+dic[attribut]+"<td>";
if(dic.Equals(dicList[dicList.Count-1]))
htmlstring += "</tr>"
}
}
würde das so gehen?
es muss nicht w3c valid sein 😉
hmm..
das könnte ich im 2ten schritt machen...
der erste schritt den ich mir gesetzt hab ist eigentlich die anzeige an sich, mit den unterschieden...
das steht ja soweit, auch wenns bei 5 artikeln über den webservice ca 4 sekunden dauert...
naja.. läuft alles lokal.. auf nem server ists sicher schneller...
schritt 2 wäre dann performance verbesserung..
ich denke da ist dein vorschlag besser 🙂 (danke 🙂 )
BSP:
datenbank1:
herstellerartikelnr: ax53
.....
meineid: 2
datenbank2:
tabelle1:
id: 3sa
.....
meineid: 2
tabelle2:
id | atributid | auspraegungsid | unitid
3sa | 1 | 2 | 3
3sa | 4 | 5 | 6
tabelle3:
id| Text
1 | Ram
2 | 2
3 | Gb
4 | Prozessor
5 | 2,6
6 | GHz
wolltest du das wissen?
Attribut: RAM
dicList[0]["Ram"] = 2 GB
dicList[1]["Ram"] = 4 GB
da ist ja jetzt ein unterschied...
dann vergleiche ich es durch .Equals()..
if
unterschied.. änder string ab;
else
doNothing();
aber vergleichen funktioniert jetzt soweit...
was mir wirklich zu schaffen macht ist das erstellen eines html strings aus den daten...
soll in tabellenform angezeigt werden...
und das ganze muss ja dynamisch sein, da keine spaltenanzahl feststeht...
Attribut1|Artikel1Merkmal|Artikel2Merkmal|...|Artikel"n"Merkmal
Attribut2|Artikel1Merkmal| - |...|Artikel"n"Merkmal
Attribut2|Artikel1Merkmal|Artikel2Merkmal|...|Artikel"n"Merkmal