Hi, bei Like fliegt eine Exception:
'LINQ to Entities' erkennt die Methode 'Boolean Like(System.String, System.String)' nicht,.....usw.
Habe es danach mal mit Equals versucht, dabei kam aber wieder der Fehler den ich im ersten Eintrag beschrieb.
verwendetes Datenbanksystem: <SQLCompact>
Moin Leute,
ich habe folgendes Problem:
Es kommt jedesmal eine Exception wenn ich im Linq Query eine Variable verwende. KlassenID ist von Typ NVARCHAR(50)
Zum Beipsiel:
using (ClientFramework.SFS2009Entities db = new ClientFramework.SFS2009Entities())
{
string Klassenname = "A";
var query = from kk in db.Klassen
where kk.KlassenID == Klassenname
select kk;
Debug.WriteLine(query.First().KlassenID);
}
wenn ich aber stattdessen in Where Klausel
where kk.KlassenID == "A"
schreibe geht es.
Folgende Exception erscheint:
Fehler beim Ausführen der Befehlsdefinition. Details finden Sie in der internen Ausnahme.
Und die innere:
{"Die Datentypen 'ntext' und 'image' können in Klauseln vom Typ WHERE, HAVING, GROUP BY, ON oder IN nicht verwendet werden, es sei denn, diese Datentypen werden mit den Prädikaten LIKE oder IS NULL verwendet."}
Ich hoffe mir kann geholfen werden.
Vielen Dank schon einmal.
Enviroment.NewLine gibt dir einen Zeilenumbruch.
Hi,
ich hatte dieses Problem und konnte es mit
cellspacing und cellpadding der Tabelle auf 0 setzen, beheben.
Chris
Das Problem war der Windows Media Player.
Man braucht mindestens den 10er und ich hatte auf meinem XP den 9er.
Da vista ja direkt mit dem WMP 11 ausgeliefert wird, trat dieses Problem da gar nicht erst auf.
Chris
Moin,
ich habe das, Problem das ich 2 MediaElemente habe, eins lädt eine MP3 Datei und da andere ein Bild. Habe das ganze unter Vista entwickelt und getestet und alles läuft.
Unter XP jedoch wird die Musik und das Bild nicht angezeigt bzw. abgespielt.
Funktioniert das MediaElement unter XP nicht? Kann doch nicht, läuft doch alles im .Net Framework ab. oder?
Kann jemand helfen oder hatte schonmal dieses Problem?
Grüße
chris
Hi Leute,
ich habe vor wenigen Tagen etwas mit XBAP herumprobiert und musst leider feststellen, dass man extrem eingeschränkte Rechte hat.
Ich konnte keine Datenbankverbindung aufbauen oder ins Dateisystem schreiben, noch nicht einmal Animationen sind ohne full trusted und Zertifikat möglich.
Nun, könnt ihr mir sagen wie es sich da mit Silverlight 2.0 verhält?
Grüße
Chris
Hi,
du kannst normalerweise eine Connection öffnen wenn, du einem SQLCompactConnection Objekt einen gültiger ConnectionString gibt und die open Methode aufrufst.
Ich glaube du hast es mit einem SQLConnection Objekt versucht.
Der ConnectionString für eine SQLComopact 3.5 DB ist recht simplel, es steht nur der Pfad zur .sdf drin, evtl noch Passwort.
Am besten du postest mal deinen Vorgang.
Gruß
Chris
PS: Um SQL Server Compact 3.5 zu benutzen brauchst du kein IIS.
Hi,
Das mit dem markieren wird bei einem Label schwieriger.
Viellecht könntest du eine textBox nehmen.
Mit dem kopieren sollte so gehen:
Clipboard.SetText(label1.Text);
Gruß
Chris
Hi Leute,
ich suche eine Postleitzahlen Datenbank für Spanien.
Habe einige von USA und Deutschland gefuden, jedoch keine für Spanien.
Es wäre toll wenn ihr helfen könntet, Sie sollte auf jedenfall kostenlos sein.
Grüße
Chris
Da hab ich wohl in die falsche Richtung gedacht, sorry.
Wenn du z.B. Controls hast wo Controls drin sind. Panel, TabPages usw.
Ich denke das liegt an der Kodeirung, C# nimmt Unicode. Das Euro-Zeichen ist 20AC.
Du kannst dir eine Klasse schreiben, deren Properties mit den Werten des DataTable füllen und dem ReportView dann dein Object der Klasse übergeben.
Mit typisierten Datasets gehts auch.
Das du dein Programm mit einem Parameter startest. Dieser soll wahrscheinlich der Dateipfad sein. in Args steht dann der Wert den du beim aufruf übergeben hast.
das kann man so nicht sagen...
Das kommt darauf an ob du viel mit Designer und effekten arbeiten willst..dann WPF. Ansonst sind WinForms meiner Meinung nach immer noch der Standard und die bevorzugte Variante. Wenn du vor hast irgendwelche UI Controls zu verwenden kann das natürlich auch eine Rolle spielen.
Chris
hi,
danke für die Hilfestellungen.
Ich werde mal die Antworten nehmen und irgenwie zusammenfügen. Anschließend noch was tolles ergänzen und fertig.
Chris
Hi.
WindowsState der Form auf Minimized,
ShowInTaskbar auf false,
NofifyIcon Control verwenden um ein Tray Icon anzuzeigen.
Gruß
chris
ich habe nochmal rumprobiert und so ging es, du bekommst dann eine neue Liste mit Werten.
var query = (from c in datenListe
select c.VergleichsItem).Distinct();
List<MyObject> NewdatenListe = new List<MyObject>();
foreach (var item in query)
{
var query2 = (from a in datenListe
where a.VergleichsItem == item
select a).Take(1);
NewdatenListe.AddRange(query2);
}
Jedoch bin ich mir nicht sicher ob deine Schleife nicht sogar schneller ist, da ja bei mir in der Schleife jedes mal eine neue Abfrage gemacht wird.
var query = (from c in datenListe
select c.VergleichsItem).Distinct();
So bekommst du nur eindeutige Wert, das Problem ist dann wahrscheinlich, dass du nur die Werte vom VergleichsItem hast und nicht mehr deine MyObject List.
Ja an sowas habe ich als Einleitung schon gedacht, jedoch würde ich gern noch ein/zwei Sätze über .Net 3.5 und SQL Compact 3.5 verlieren. Ein ganz kleines bißchen muss ja auch hinter ...nur das beste... stecken.
Hi Leute,
ich schreibe zur Zeit an einem Handbuch für eine Rezeptverwaltungssoftware. Diese nutzt das 3.5er Framework und SQL Compact Edition 3.5.
Nun würde ich im Handbuch gern erwähnen welche Technik ich verwendet habe, denke aber das der Endbenutzer mit den ganzen technischen Kram nichts anfangen kann. Habt ihr irgendwelche Links oder Text im Kopf die Aussagen wie toll doch das alles ist und das es nichts besseres gibt?
Danke.
Gruß Chris
PS. Wir können es ruhig übertreiben.
echt Vista erkennt kein Autorun.inf , ist ja blöd. Aber wenn eine Setupdatei vorhanden ist scheint Vista das zu bemerken. Denn bei der Auswahl bekomme ich meistens setup oder Ordner öffnen angezeigt.
SelectedItems? evtl. selectedItems.count
Hi,
erstelle eie autorun.inf Datei und ein Setupproject im VS. normalerweise prüft das Setup von selbst ob das benötigte Framework installiert ist. Man kann dem Setup den Pfad mitteilen wo das Framework liegt falls nicht vorhanden. Dort steht noch eine URL, vielleicht kannst du da den Dateinamen nehmen vom Framework Setup.
Zum Schluss Framework Setup,Application Setup und die Autorun.inf auf CD brennen.
Chris
Hi,
Wenn du es ganz einfach haben willst gehts mit einem WebBrowser Control wo zu zur richtigen URL navigierst, denke ich mal.
chris
hi
setzt MultiSelect der ListBox auf true;
Dann kannst du mit der Schleife die Items der listBox durchgehen und Selektieren.
Chris
Hi,
Deklarier Variablen für die TextBoxen und setzt sie auf True über die jeweiligen textChanged Events.
Beim schließen fragst du ab welche Variablen auf true sind.
bei vielen TextBoxen kannst du natürlich auch Listen nehemen oder da in der Tag property von den TBs packen.
Chris
Nochmal zu einer Datei zurück:
Bei einer XML Datei kann man recht einfach das partielle Einlesen mit den neuen XML Klassen realisieren die u.a. für Linq in .Net 3.5 eingeführt wurden. Evtl. kannst du das auch splitten, so dass du nícht alles in einer Datei speicherst.
Hi,
ich habe noch nicht mit so großen XML-Dateien gearbeitet aber könnte mir vorstellen, dass das zu viele Daten für ein XML Dokument sind und die Performance darunter leidet.
Chris
ja das stimmt, ich habe auch versucht Dateien zu öffnen, nur in der Fehlermeldung stand immer drin, dass auf das Verzeichnis wo die Datei drin liegt nicht zugegriffen werden kann.
hey.
Nochmal zum Selectieren:
Wenn du im Eigenschaftsfenster auf Columns klickst öffnet sich ein Fenster, dort kannst du zu deinen vorhandenen Spalten eine CommandField Spalte mit Auswahl Button hinzufügen. Der erscheint dann vor jeder Zeile und wenn du ihn klickst ist die Zeile komplett markiert.
Zum auslesen der Selectierten Daten.
Wenn also ein Eintrag ausgewählt wird ruft das GridView das Event SelectedIndexChanged auf. Da sich der selectierte index geändert hat. Wähle aus dem Eigenschaftsfenster das Ereignis, und du kannst so auf die einzelnen Zellen deiner ausgewählten Zeile zugreifen.
GridView1.SelectedRow.Cells[2].Text;
In diesem Fall greife ich auf die 3. Zelle zu.
Chris.
Hi,
Unter columns kannst du CommandFiels wählen, du brauchst einen select bzw Auswahl Button.
Das GridView hat dafür Events. Z.B. SelectedIndexChanged.
Dann kannst du es so ähnlich machen:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
TextBox1.Text = GridView1.SelectedRow.Cells[2].Text;
}
Chris
Also so gehts:
fi ist ein FileInfo Objekt.
FileStream fsBLOBFile = fi.OpenRead();
Byte[] bytBLOBData = new Byte[fsBLOBFile.Length];
fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length);
fsBLOBFile.Close();
Chris
Ich würde es gern mal auf einen anderen Weg ausprobieren. Gibts eine andere Möglichkeit eine Datei in einem Byte[] zu bekommen?
nö hilft nicht. Auch UAC aus bringt nichts.
Habe meine Programme mal eben in einer Virtuellen Machine mit XP SP2 kopiert und selbst da bekomm ich die Meldung.
XP hat kein UAC. Ahh.
Ich kopier mein Projekt mal auf den Laptop mit Vista 32, vielleicht compiliert der das unter vista 64 komisch.
Hi Leute,
ich bin jetzt schon ein paar Stunden dran und es liegt immer wieder das gleiche Problem vor: Ich bekomme folgende Exception {"Der Zugriff auf den Pfad E:\ wurde verweigert."}
Ich benutze Vista x64 und dachte mir zuerst, dass ich halt keine Berechtigung habe, wie es auch in der Meldung steht. Jedoch habe ich den Pfad mit allen möglichen Verzeichnissen und Laufwerken getestet. Auch mit RunAs Admin. Immer das gleiche Ergebnis. Es kann doch nicht, dass ich selbst als Administrator auf meinem eigenen Rechner keine Rechte habe, oder?
Naja hier ist der Code, beim deklarieren des FileStreams kracht es.
FileStream fsBLOBFile = new FileStream(fi.DirectoryName, FileMode.Open, FileAccess.Read);
Byte[] bytBLOBData = new Byte[fsBLOBFile.Length];
fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length);
fsBLOBFile.Close();
Wäre schön wenn ihr mir helfen könntet.
Chris
Hi,
versuche es mal mit:
string NeuerText = textBox1.Text.Replace(",",Environment.NewLine);
und für das Leerzeichen genauso nur anstatt , ein Leerzeichen.
chris
Naja es geht noch einfacher:
public static Array GetAllSongsByCharacterOverArtist(string CharArtist)
{
using (MusicDatabaseEntities entities = new MusicDatabaseEntities())
{
var result = from c in entities.songs select c.artists.artistname.StartsWith(CharArtist);
return result.ToArray();
}
}
Das Array was zurück kommt kann einfach an GridView.DataSource zugewiese n werden.
Chris
Hi,
du kannst es so machen:
private void button1_Click(object sender, EventArgs e)
{
GetTable(ref dataGridView1);
}
void GetTable(ref DataGridView grid)
{
using (Atelier.VisualAtelierDataContext ctx = new Atelier.VisualAtelierDataContext())
{
var query = from k in ctx.Kundens
select k;
grid.DataSource = query;
}
}
oder du gibts DataTable zurück und füllst den mit einer foreach.
DataTable GetTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("Nachname");
dt.Columns.Add("Vorname");
using (Atelier.VisualAtelierDataContext ctx = new Atelier.VisualAtelierDataContext())
{
var query = from k in ctx.Kundens
select k;
foreach (var item in query)
{
dt.Rows.Add(new object[] { item.Nachname, item.Vorname });
}
}
return dt;
}
Gruß Chris
Das Automation Framework kann soetwas sehr komfortabel erledigen.
In diesem Namespace sind die Klassen die du brauchst: UIAutomationClientsideProviders.
Es müssen 4 Assemblies UIAutomation... referenziert werden.
Dann kannst du in etwa vorgehen wie mein Beispiel:
#region Open App
OpenFileDialog op = new OpenFileDialog();
System.Diagnostics.Process p = new System.Diagnostics.Process();
if (op.ShowDialog() == DialogResult.OK)
{
p = System.Diagnostics.Process.Start(op.FileName);
}
#endregion
#region Zugriff auf Desktop
AutomationElement ae = AutomationElement.RootElement;
#endregion
DateTime je = DateTime.Now;
System.Threading.Thread.Sleep(2000);
//Form
AutomationElement asForm = ae.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "Form1"));
//Button
AutomationElement asBtn1 = asForm.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "button1"));
//Declare Pattern for Event
InvokePattern btnclick = (InvokePattern)asBtn1.GetCurrentPattern(InvokePattern.Pattern);
//TextBox
AutomationElement asTB = asForm.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.AutomationIdProperty, "textBox1"));
//Declare Pattern for Event
ValuePattern TBSet = (ValuePattern)asTB.GetCurrentPattern(ValuePattern.Pattern);
//Invoke aufrufen
for (int i = 0; i < 200; i++)
{
TBSet.SetValue(i.ToString());
btnclick.Invoke();
System.Threading.Thread.Sleep(500);
}
p.Kill();
Mfg
Chris
Hi,
du könntest dir eine Zusätzlich Schicht einfügen, die Services bzw. Klassen und Methoden enthält wo du deine Business Objekte übergeben kannst. Diese Services komunizieren dann mit DB.
Gruß
Chris
Setup erstellen und entsprechende Dateien hinzufügen.
Chris
Das Management Studio kann keine Bilder anzeigen, es weis nicht einmal, dass diese Binären Daten ein Bild sein soll.
Wenn du das Bild ausversehen in die falsche Spalte geschrieben hast, denke ich nicht das es komplett drin ist. Schließlich ist ein Bild ja etwas größer als z.B. eine nvarchar(50) länge.
Chris
Hi,
ich denke das ist nicht zu schwierig um es selbst du schreiben.
Such dir bei Codeproject oder anderswo eine schöne Progressbar aus und bau ein Theromometer drumherum.
Gruß
Chris
DirectoryInfo di = new DirectoryInfo(@"Pfad");
FileInfo[] speicher;
speicher = di.GetFiles("*.txt");
//Liste für Dateinamen
List<string>Dateinamen = new List<string>();
listBox1.Items.Clear();
for (int i = 0; i < speicher.Length; i++)
{
FileStream fs = new FileStream(@"Pfad" + speicher[i].Name, FileMode.Open);
StreamReader sr = new StreamReader(fs);
string zw = "" + sr.ReadLine();
//Hier zur Liste hinzufügen
Dateinamen.Add(@"Pfad" + speicher[i].Name);
listBox1.Items.Add(zw);
sr.Close();
fs.Close();
}
und wenn du den Dateinamen willst:
string Filename = Dateinamen[ListBox1.SelectedIndex];
ah
du könntest dir ne Methode bauen die als Parameter den ausgewählten Text bekommt und als Rückgabewert den Dateinamen. Innerhalb der Methode durchläufst du wieder jede Datei im Verzeichnis und prüfst ob es die richtige ist.
Oder du speicherst dir die Dateinamen zum passenden ListBox Index von Anfang an in einem Array oder so und durchsuchst nur das.
Oder du Nimmst keine ListBox sondern was mit mehreren Spalten und schreibst in der zusätzlichen Spalte den Dateinamen.
Achja... ich denke da gibts keine Methode für, kann mich aber auch irren.
Hi,
du könntest z.B.
an deinem WebPart eine Webpartverbindung definieren, das Sharepoint Filter WebPart auf die Seite einfügen und beide verbinden. Dann schickt das Sharepoint Filter WebPart die Filterwerte an dein WebPart.
Gruß
Chris