Laden...

Datentyp iqy in Windows Forms verwenden

Erstellt von Gogeta vor 11 Jahren Letzter Beitrag vor 11 Jahren 3.806 Views
Thema geschlossen
G
Gogeta Themenstarter:in
152 Beiträge seit 2012
vor 11 Jahren
Datentyp iqy in Windows Forms verwenden

verwendetes Datenbanksystem: SQL2008/ eine Excel Datei mit der Endung .iqy

Hallo

Ich habe ein problem, wo ich nicht mehr weiter komme...
Ich habe eine Excel-Datei mit der endung iqy, hatte nie was mit dieser Datenendung zutun, muss aber jetzt damit arbeiten. 😕

Ich weiß leider nicht wie der connectionString für diese Datei aussehen muss, ich denke an OleDb, oder was sagt ihr?

Dann wollte ich wissen ob ich diese Datei mit einer tabelle (aus SQL Datenbank) miteinander verknüpfen kann ? Ich denke ich kann ja beide tabellen (einmal die .iqy und die Datenbank tabelle) in EIN DataSet packen, aber in unterschiedlichen DataTables aufbewahren.
Würde sowas funktionieren?

Ich freue mich über jegliche Hilfe.

194 Beiträge seit 2006
vor 11 Jahren

Nun ja, ich würde sagen, die Dateiendung ist OleDb ziemlich egal. Wenn du mit Sicherheit weisst, dass es eine Excel-Datei ist, spricht nichts dagegen, das mit OleDb anzusprechen. Natürlich stellt sich die Frage, ob jetzt ACE oder JET? Das solltest du schon noch herausfinden.

Zur zweiten Frage: Das hast du korrekt erfasst, dem DataSet ist es auch egal woher die Daten stammen, entscheidend ist der DataAdapter bzw. TableAdapter.

Gruss

Balaban_S

G
Gogeta Themenstarter:in
152 Beiträge seit 2012
vor 11 Jahren

Okay.. Habe versucht dies zu realisieren...

... auf eine .iqy Datei zu Verbinden:


            OleDbConnection iqyConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Default\Desktop\ttes.iqy;Extended Properties=""Excel 12.0 Xml""");
            iqyConn.Open();   //hier kommt der fehler: Die externe Tabelle hat nicht das erwartete Format. ??...
            OleDbCommand olecmd = new OleDbCommand("SELECT * FROM [ttes$]", iqyConn);
            OleDbDataReader dreader = olecmd.ExecuteReader();
            DataTable test = new DataTable();
            test.Load(dreader);
            iqyConn.Close();

            dataGridView1.DataSource = test;

Danach habe ich ACE mit JET ausgetauscht, doch dann kommt der Fehler:

Der 'Microsoft.JET.OLEDB.12.0'-Provider ist nicht auf dem lokalen Computer registriert.

an der selben Stelle, also beim Öffnen der Connection. Es kann gut angehen, dass kein Jet auf den PC Installiert ist, ich habe auch keine rechte etwas zu installieren :S

Ich möchte einfach die Datei öffnen und mit deren Inhalt speichern/anzeigen lassen, dachte es wäre einfach, da man die Datei ganz leicht mit Excel öffnen kann.

Also meine frage, was muss ich tun um die Datei ttes.iqy in C# zu öffnen?

5.658 Beiträge seit 2006
vor 11 Jahren

Hi Gogeta,

vielleicht solltest du als erstes mal rausfinden, um welches Format es sich dabei eigentlich handelt. Die Dateiendung sagt ja erstmal nix über den Inhalt aus. Wenn du sie aber mit Excel öffnen kannst, könntest du im Zweifelsfall auch eine XLS-Datei daraus machen.

Christian

Weeks of programming can save you hours of planning

G
Gogeta Themenstarter:in
152 Beiträge seit 2012
vor 11 Jahren

Das habe ich schon getan, als .xlsx gespeichert, dann funktioniert alles super.

Aber ich soll halt diese Datei (ttes.iqy) benutzen, da es sich ja bei .iqy um eine Abfrage Datei handelt. Die wird immer aus dem Internet aktualisiert, also immer neue Datensätze werden hinzugefügt. Und wenn ich das als .xlsx datei speichere ist sie halt nicht mehr "aktuel" sie bleibt immer so wie ich sie gespeichert habe.

194 Beiträge seit 2006
vor 11 Jahren

Danach habe ich ACE mit JET ausgetauscht, doch dann kommt der Fehler:

Der 'Microsoft.JET.OLEDB.12.0'-Provider ist nicht auf dem lokalen Computer registriert.  

Der Provider heisst :


Microsoft.Jet.OLEDB.4.0

siehe:
Connection strings for Excel
und
Connection strings for Excel 2007
Gruss

Balaban Senol

G
Gogeta Themenstarter:in
152 Beiträge seit 2012
vor 11 Jahren

Ups Sorry, war ein Tippfehler

Doch wenn ich das korrigiere, kommt dieser Fehler

Installierbares ISAM nicht gefunden.

Dieser fehler kommt auch wenn ich ACE.OLEDB.12.0 einfüge 😕
Muss ich unbedingt was Installieren?

Und wie gesagt, habe keine rechte irgendwas zu installieren 😕

ist es sonst nicht möglich, durch irgendwelche tricks xD

lg

Edit: habe den Connection Str geändert:

@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Default\Desktop\ttes.iqy;"

Dann war dieses ISAM problem weg, doch nun sagt er:

Nicht erkennbares Datenbankformat 'C:\Users\Default\Desktop\ttes.iqy'.

wie kann ich dieses problem entfernen?

brauch ich villeicht ein verweis???

F
10.010 Beiträge seit 2004
vor 11 Jahren

Irgendwie habe ich das gefühl das deine google fähigkeiten sehr schlecht sind.

Ich habe jetzt mal "excel iqy" eingegeben und gleich der erste Link zeigte was das für Dateien sind.

Das sind Textdateien die eine Webabfrage beinhalten.
z.b.

WEB
1
http://www.pcwelt.de/index.cfm?pid=636

FieldNames = True
RowNumbers = False
FillAdjacentFormulas = False
PreserveFormatting = True
RefreshOnFileOpen = False
BackgroundQuery = False
RefreshStyle = xlInsertDeleteCells
SavePassword = False
SaveData = True
AdjustColumnWidth = True
RefreshPeriod = 0
WebFormatting = xlWebFormattingAll
WebPreFormattedTextToColumns = True
WebConsecutiveDelimitersAsOne = True
WebSingleBlockTextImport = False
WebDisableDateRecognition = False

Da kannst du mit OleDb nichts machen.

G
Gogeta Themenstarter:in
152 Beiträge seit 2012
vor 11 Jahren

und trotzdem gibt er die Datei mit excel wieder und nicht mit Word oder Notepad -.-

und ich dachte mir, wenn sich das mit excel öffnen lässt sich das ganze auch in c# verwirklichen.

naja also ist es nicht möglich eine datei mit der endung iqy in c# zu öffnen/bearbeiten oder anzeigen zu lassen?

Egal ob mit oleDb oder irgendwas anderes 😕

Lg

5.658 Beiträge seit 2006
vor 11 Jahren

Hi Gogeta,
wo liegt jetzt eigentlich noch das Problem? Fzelle hat dir doch erklaert, was in den Dateien zu finden ist. Was du jetzt daraus machst, musst du schon selbst wissen....
Christian

Weeks of programming can save you hours of planning

G
Gogeta Themenstarter:in
152 Beiträge seit 2012
vor 11 Jahren

Und was findet man in den Dateien?
Sagt es mir, FZelle hat nur das geschickt/geschrieben, wenn ich die ttes.iqy in mein Visual Studio 2010 ziehe, kommt genau das selbe natürlich mit einer anderen url.
hier:


EditWebPage=
Formatting=None
PreFormattedTextToColumns=True
ConsecutiveDelimitersAsOne=True
SingleBlockTextImport=False
DisableDateRecognition=False
DisableRedirections=False

Und was sagen mir jetzt diese werte?

ich habe garkeine ahnung...

5.658 Beiträge seit 2006
vor 11 Jahren

ich habe garkeine ahnung...

Das ist nicht das Problem. Das Problem ist, dass du nichts dagegen tust.
Christian

Weeks of programming can save you hours of planning

F
10.010 Beiträge seit 2004
vor 11 Jahren

Du willst es scheinbar wirklich nicht verstehen.

iqy sind spezielle Excel Webanfage Dateien, deshalb kann Excel da etwas mit anfangen.
Hättest du aber gelesen wenn du den ersten link in der erwähnten Google anfrage gelesen hättest.

Also nochmal ganz deutlich:

Excel kann *.iqy lesen und verarbeiten, OleDb nicht.

G
Gogeta Themenstarter:in
152 Beiträge seit 2012
vor 11 Jahren

Okay.. Dankeschön 😃

ich habe das schon herraus gefunden, dass ich das **NICHT **benutzen kann, aber mein Chef hat mir gesagt, dass es auf **JEDENFALL **eine möglichkeit gibt, diese Datensätze in Visual Studio zu verwenden.

ich google schon seit mindestens einer woche, doch finde nichts.

und da könnt ihr eure Comments wie :

"Das ist nicht das Problem. Das Problem ist, dass du nichts dagegen tust."

und:

"Du willst es scheinbar wirklich nicht verstehen."

ich würde ja nicht fragen, wenn mein Chef mir sagt, dass es eine Möglichkeit gibt.

ich habe sie nicht gefunden, dass gebe ich zu, doch ich dachte mir vielleicht hat jemand, mit sowas schonmal gearbeitet, dafür ist doch ein Forum da.

Naja ich wünsche euch einen schönen tag.

16.842 Beiträge seit 2008
vor 11 Jahren

Auch ein Chef weiß nicht alles und kann sich mal irren. Das hat auch nichts mit Visual Studio zutun, sondern mit .NET bzw. Providern.

Aber bevor das weiter ausartet mach ich hier mal zu.
An für sich ist die Problematik diesbezüglich ja geklärt. Solltest Du bei der Implementierung dann wieder auf Hindernisse stoßen, kannst Du ja spezifische Probleme in einem eigenen Thread ansprechen.

Thema geschlossen