связь c# с постглинистым песчаником

У меня есть проблема с этой связью в pgsql. Я не знаю, что происходит. Я разместил breakpoint в каждой линии кода и войди во все линии, но не я reconoe пользователь, я не знаю, если он это вредил или мне не хватало немного.

Уже разместите using npgsql; и я сделал класс с цепью связи, чтобы называть только цепь и ничто. Мой conf pgsql точный, уже я попробовал все то, что у моих знаний есть. Я использую проект WPF и также считаю установленным mahapps, чтобы давать ему стили метр и npgsql я это загрузил Nuget, я не знаю, если это служило для того, чтобы определить, что происходит.

Здесь я оставляю фрагмент кода.

private void btnaceptar_Click(object sender, RoutedEventArgs e)
{
    bool blnfound = false;

    NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;Port=5432; User Id=postgres;Password=1234;Database = systemBD");
    conn.Open();
    NpgsqlCommand cmd = new NpgsqlCommand("Select * from usuario where cod_usu = '" + txt1 + "' and con_usu = '" + txt2 + "' ", conn);
    NpgsqlDataReader dr = cmd.ExecuteReader();
    if (dr.Read())
    {
        blnfound = true;
        modulos form = new modulos();
        form.Show();
        this.Hide();
    }
    if (blnfound == false)
        MessageBox.Show("Usuario o Contraseña Incorrecta", "Mensaje de Alerta", MessageBoxButton.OK);
    dr.Close();
    conn.Close();
}
5
задан 06.04.2016, 21:16
3 ответа

Как я понимаю тебя, приложение не достает тебе никакой ошибки связи. Просто тебя не санкционирует пользователь твоей таблицы пользователь. Если это правильно, проверь эту линию кода

NpgsqlCommand cmd = new NpgsqlCommand("Select * from usuario where cod_usu = '" + txt1 + "' and con_usu = '" + txt2 + "' ", conn);

Здесь ты санкционируешь два раза колонну cod_usu с txt1 и txt2. Что я думаю, что ты был бы должен делать, он состоит в том, чтобы санкционировать cod_usu = txt1 и фиксируйте = txt2.

Итак, способ, в котором ты прилагаешь команду

"Select * from usuario where cod_usu = '" + txt1 + "' and con_usu = '" + txt2 + "' ", conn);

он не является очень рекомендуемым, так как твое приложение остается очень выставленным атаке SQL Injection, так что я рекомендую тебе читать этот post http://www.csharp-station.com/Tutorial/AdoDotNet/Lesson06, который является SQL Server, но равный он будет подавать тебя для того, что я говорю тебе.

5
ответ дан 24.11.2019, 14:38

Обрати внимание, если следующей формы оно функционирует, segГєn это есть у меня, конфигурировавшего вместо Server, я использую HOST и пару данных больше:

 NpgsqlConnection conn = new NpgsqlConnection("HOST=127.0.0.1;Port=5432; User Id=postgres;Password=1234;Database = systemBD;TIMEOUT=15;POOLING=True;MINPOOLSIZE=1;MAXPOOLSIZE=20;COMMANDTIMEOUT=20");
3
ответ дан 24.11.2019, 14:38
  • 1
    ok, большое спасибо я буду пробовать ночью. что проект находится в моем доме любая вещь, я возвращаюсь где-то здесь и большое спасибо на самом деле – Gilberto Asuaje 04.04.2016, 21:44
  • 2
    добрый вечер друг я попробовал размещать линию, которую ты сказал мне, но нет, не функционирую. каким бы то ни было образом большое спасибо – Gilberto Asuaje 06.04.2016, 20:42

Проверь этот, он сходный:

using System;
using Npgsql; //Npgsql .NET Data Provider for PostgreSQL

class Sample
{
    static void Main(string[] args)
    {
        // Specify connection options and open an connection
        NpgsqlConnection conn = new NpgsqlConnection(
            "Server=127.0.0.1;User Id=postgres;" + 
            "Password=pwd;Database=postgres;"
        );
        conn.Open();

        // Define a query
        NpgsqlCommand cmd = new NpgsqlCommand("select city from cities", conn);

        // Execute a query
        NpgsqlDataReader dr = cmd.ExecuteReader();

        // Read all rows and output the first column in each row
        while (dr.Read())
        Console.Write("{0}\n", dr[0]);

        // Close connection
        conn.Close();
    }
}
3
ответ дан 24.11.2019, 14:38