Laden...

mit asp.net auf eine postresql datenbank per odbc zugreifen

Erstellt von Zebes vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.868 Views
Z
Zebes Themenstarter:in
457 Beiträge seit 2007
vor 16 Jahren
mit asp.net auf eine postresql datenbank per odbc zugreifen

hallo,

ich habe gerade mit asp.net angefangen und wollte nun gerne eine datenbank anbindung einrichten. als datenbank verwende ich postgresql und greife über die mitgelieferten odbc treiber zu.

solange ich mich in der testumgebung voom vs 2005 befinde funktioniert auch alles wunderbar. wenn ich nun das projekt für den iis veröffentlich und auf eine seite zugreife die aus der datenbank etwas ausliest bekomme ich den fehler:

_
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.Odbc.OdbcException: ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified_

ich habe irgend wo gelesen das ich einen "DSN" setzen muss. aber wo genau und was da nun drin stehehn muss weis ich nicht.

und wie gesagt, verwunderlich ist, dass es in der testumgebung funktioniert.

mfg
Zebes

130 Beiträge seit 2005
vor 16 Jahren

Wäre gut, wenn du das entsprechende Stück Code posten könntest, um zu sehen, wie du vorgehst.

Z
Zebes Themenstarter:in
457 Beiträge seit 2007
vor 16 Jahren

ich habe das über den designer gemacht aber ok hier ist der entsprechende html teil:

das ist aus der web.config für den connection string


	<connectionStrings>
  <add name="TestConnectionString4" connectionString="Driver={PostgreSQL ANSI};database=Test;server=localhost;port=5432;uid=xxxx;pwd=xx;sslmode=disable;readonly=0;protocol=7.4;fakeoidindex=0;showoidcolumn=0;rowversioning=0;showsystemtables=0;fetch=100;socket=4096;unknownsizes=0;maxvarcharsize=254;maxlongvarcharsize=8190;debug=0;commlog=0;optimizer=1;ksqo=1;usedeclarefetch=0;textaslongvarchar=1;unknownsaslongvarchar=0;boolsaschar=1;parse=0;cancelasfreestmt=0;extrasystableprefixes=dd_;lfconversion=1;updatablecursors=1;disallowpremature=0;trueisminus1=0;bi=0;byteaaslongvarbinary=0;useserversideprepare=0;lowercaseidentifier=0;xaopt=1"
   providerName="System.Data.Odbc" />
 </connectionStrings>

und hier code von einer seite auf der sich ein gridview die daten aus der datenbank abholt


    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White"
        BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" DataKeyNames="id"
        DataSourceID="DemoDB" ForeColor="Black" GridLines="Vertical">
        <FooterStyle BackColor="#CCCCCC" />
        <Columns>
            <asp:BoundField DataField="interpret" HeaderText="interpret" SortExpression="interpret" />
            <asp:BoundField DataField="titel" HeaderText="titel" SortExpression="titel" />
            <asp:BoundField DataField="id" HeaderText="id" ReadOnly="True" SortExpression="id" />
        </Columns>
        <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
        <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
        <AlternatingRowStyle BackColor="#CCCCCC" />
    </asp:GridView>
    <asp:SqlDataSource ID="DemoDB" runat="server" ConnectionString="<%$ ConnectionStrings:TestConnectionString4 %>"
        ProviderName="<%$ ConnectionStrings:TestConnectionString4.ProviderName %>" SelectCommand="select * from meinecds;">
    </asp:SqlDataSource>

ich hoffe das hilft irgend wie weiter. wie gesagt, in der testumgebung von vs2005 läuft das einwandfrei. nur als veröffentlichte version auf dem iis nicht.

mfg
Zebes

M
402 Beiträge seit 2005
vor 16 Jahren

Hi!

Ist auch auf dem Server auf dem der Zugriff nicht funktioniert der
Postgres-ODBC treiber installiert?

Probier mal eine System-Datenquelle (System-DSN) zu erstellen.
Postgres müßte dann eigentlich bei den ODBC-Treibern zu finden sein....

...bei MySQL war/ist das zu mindest so...

lg

Z
Zebes Themenstarter:in
457 Beiträge seit 2007
vor 16 Jahren

da hatte ich gestern nach geschaut aber der ist da leider nicht zu finden und ich weiß auch nit wie ich den da hinzufügen kann.

Z
Zebes Themenstarter:in
457 Beiträge seit 2007
vor 16 Jahren

hat denn noch keiner ein ähnliches problem gehabt? oder eine idee wie ich weiterkommen könnte?

mfg
Zebes

M
402 Beiträge seit 2005
vor 16 Jahren

Na wenns bei dir am Entwicklungssystem funktioniert,
muß da der ODBC-Treiber installiert sein.

Und der ist am Server ebenfalls zu installieren.

Denn wenn kein Postgres-Treiber gelistet ist,
wird er auch nicht verwendet werden können.

Ev. könnte auch http://www.postgres.de/entwickler.whtml#ss etwas helfen.

lg

Z
Zebes Themenstarter:in
457 Beiträge seit 2007
vor 16 Jahren

nur um das klar zustellen, mein entwicklungsrechner und der server auf dem der iis läuft sind die selbe maschiene.

danke für den link ich schaue mir den gleich mal an

mfg

Zebes

Z
Zebes Themenstarter:in
457 Beiträge seit 2007
vor 16 Jahren

ok habe einen tip bekomen das bei einem 64 bit system die 32 bit treiber manchma nicht angezeigt werden weil sie im falshcen verzeichnis liegen. der witz ist nun bin ich in das syswow64 verzeichnis gegangen und dort kann man das admin tool aufrufen in dem ich vorher die treiber nicht gefunden hatte. aber nun sind die installiert.

dann werde ich das jetzt mal testen und vielen dank für die hilfe

mfg
Zebes

Z
Zebes Themenstarter:in
457 Beiträge seit 2007
vor 16 Jahren

das ha tmich leider nicht weitergebracht 😦. angeblich soll es daran liegen, das ich win64 habe und die treiber nur für x86 sind un dich daher auch mein programm dafür compilieren muss. aber in asp.net kann man das nirgends einstellen oder?

mfg
Zebes