Autor Beitrag
tomycat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 174
Erhaltene Danke: 1



BeitragVerfasst: Mo 09.11.15 21:02 
hallo,
ich habe mich eingearbeit mit mysql in verbindung mit Visual Studo 2015.
Installer installiert und dann über Verweise mysql hinzugefügt.
Leider ist mysql sehr teuer, deshalb möchte ich gerne umsteigen auf Postgesql.

dist.nuget.org/index.html

NuGet für Visual Studio 2015 rutergeladen und installiert. Leider ist über Verweise nur mssql und mysql drin.
Ein C# Test Programm für postgesql habe ich auch schon. Leider kennt vs kein NpgsqlConnection ? Normal?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4345
Erhaltene Danke: 877


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 09.11.15 21:50 
Zitat:
Normal?


Kommt drauf an ;) Dein Link führt zu Nuget Installern nicht zu Nuget Packeten von Postgres die man über Nuget installieren könnte. Falscher Link?

Das wäre passender
www.nuget.org/packages/Npgsql/

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 174
Erhaltene Danke: 1



BeitragVerfasst: Di 10.11.15 20:42 
ich glaube wir reden aneinander vorbei.
Ich brauche nur die clint Funktion für vs 2015.

ausblenden volle Höhe 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:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Npgsql;

namespace PostgreSQLTEst
{
  public partial class Form1 : Form
  {
    private DataSet ds = new DataSet();
    private DataTable dt = new DataTable();
    public Form1()
    {  
      InitializeComponent();  
    }
    private void llOpenConnAndSelect_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
      try
      {
        // PostgeSQL-style connection string
        string connstring = String.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};",
          tbHost.Text, tbPort.Text, tbUser.Text, tbPass.Text, tbDataBaseName.Text );
        // Making connection with Npgsql provider
        NpgsqlConnection conn = new NpgsqlConnection(connstring);
        conn.Open();
        // quite complex sql statement
        string sql = "SELECT * FROM simple_table";
        // data adapter making request from our connection
        NpgsqlDataAdapter da = new NpgsqlDataAdapter(sql, conn);
        // i always reset DataSet before i do something with it.... i don't know why :-)
        ds.Reset();
        // filling DataSet with result from NpgsqlDataAdapter
        da.Fill(ds);
        // since it C# DataSet can handle multiple tables, we will select first
        dt = ds.Tables[0];
        // connect grid to DataTable
        dataGridView1.DataSource = dt;
        // since we only showing the result we don't need connection anymore
        conn.Close();
      }
      catch (Exception msg)
      {
        // something went wrong, and you wanna know why
        MessageBox.Show(msg.ToString());
        throw;
      }
    }
  }
}

Ich habe über verweise die Npgsql.dll hinzugefügt und NpgsqlConnection war nicht mehr rot unterstrichen.
Nach dem Ausfüllen von den Felder wir User/Pass/Server bekomme ich nach verbinden folgendes Fehlermeldung: tomycat.de/sql.jpg
Mit dem Client Laptop kann ich mit Telnet auf den Postgresql Laptop zugreiden, bzw Telnet reagiert darauf.

Moderiert von user profile iconTh69: Code- durch C#-Tags ersetzt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4345
Erhaltene Danke: 877


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 11.11.15 12:41 
Der Testcode ist nicht hübsch sollte aber funktionieren (zumindest der Teil bis zum öffnen der Verbindung der bei dir knallt).
Ist der ConnectionString denn korrekt? Da habe ich keinen Blick für. Ich habe mir aber mal den NpgsqlConnectionStringBuilder angeschaut der dir so einen Connection String zusammenbastelt und der würde von "Host" sprechen und nicht von "Server". Möglicherweise erlaubt dein Server auch nur eine verschlüsselte Verbindung oder du hast zwischen den Rechnern ein System das die Kommunikation kaput macht. Firewall, Proxy, AntiVirus etc.
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 174
Erhaltene Danke: 1



BeitragVerfasst: Mi 11.11.15 13:43 
Die Firewall ist ausgeschaltet.
Der Virenscanner ist Antivir.
Ich habe die Standart Installation von Postgresql für den Server genommen.
Wo kann man die verschlüsselung abschalten, ansonsten schaue ich selber? :-)
Wenn du einen Postgresql Server hast, kannst du bitte den Code mal testen, er ist von Codeprocet.com
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4345
Erhaltene Danke: 877


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 11.11.15 14:10 
Zitat:
Wo kann man die verschlüsselung abschalten, ansonsten schaue ich selber? :-)


Ich habe nur gesehen das man Verschlüsselung via ConnectionString für diese Verbindung einschalten kann.

Zitat:
Wenn du einen Postgresql Server hast, kannst du bitte den Code mal testen,


Nope. Ich mach hier reine Trockenübungen ;)
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 174
Erhaltene Danke: 1



BeitragVerfasst: Mi 11.11.15 20:40 
hallo,
hab den Kopf nochmal freigemacht, und nochmal Schritt für Schritt neu angesetzt.
Den Code als Release kompiliert und auf den Server kopiert.
in der pg_hda.conf von md5 auf trust gesetzt. Dann den Laptop neugestartet.

Dann kommt eine Fehlermeldung dass er die simple_table nicht findet.
STIMMT !!!! ->>> string sql = "SELECT * FROM simple_table";
Ok, angelegt, dann kommt "Tabelle kann nicht ausgelesen werden." ->>>> dt = ds.Tables[0];

1.Frage:
Ich erstelle eine Spalte mit "testkram" mit pgAdmin. Meine Idee: Den String ändern in "Insert from simple_table testkram 1".
Geht das so einfach? Nur die Zahl 1 reinschreiben.

2.Frage:
Auf den Server habe ich die Firewall abgeschaltet.Clint Laptop: Mit Telnet 192.168.178.111 5432 wird cmd Schwarz und sind 2 Striche da. Aber ich bekomme immernoch die gleiche Meldung: tomycat.de/sql.jpg

Welche .conf muss ich anpassen?

Moderiert von user profile iconTh69: C#-Tags hinzugefügt