Взято из статьи: http://npgsql.projects.postgresql.org/docs/manual/UserManual.html
Перевел, что посчитал нужным.
Качаем драйвер Npgsql для MS.Net от отсюда.
Добавляем в проект ссылки на данный драйвер и namespace:
Установка соединения с СУДБ
Сервер: 127.0.0.1, Порт: 5432 (по умолчанию), Пользователь: postgres (по умолчанию), Пароль: 12345678, База данных: testd
Добавление записей в таблицу
ExecuteNonQuery() - идеально подходит для добавление или обновления записей, поскольку, возвращает целое число - добавленных/измененных "рядов".
ExecuteScalar() - получение результата содержащее единственную запись.
Получение результата. метод ExecuteReader() и NpgsqlDataReader.
Использование параметров в запросах.
Параметры позволяют динамически добавлять значения в текст запроса в режиме run-time. Обозначение параметра в тексте запроса производится с использованием префикса ":"
Качаем драйвер Npgsql для MS.Net от отсюда.
Добавляем в проект ссылки на данный драйвер и namespace:
using Npgsql;
Установка соединения с СУДБ
Сервер: 127.0.0.1, Порт: 5432 (по умолчанию), Пользователь: postgres (по умолчанию), Пароль: 12345678, База данных: testd
using System;
using System.Data;
using Npgsql;
public class NpgsqlUserManual
{
public static void Main(String[] args)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=12345678;Database=testd;");
conn.Open();
conn.Close();
}
}
using System.Data;
using Npgsql;
public class NpgsqlUserManual
{
public static void Main(String[] args)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=12345678;Database=testd;");
conn.Open();
conn.Close();
}
}
Добавление записей в таблицу
ExecuteNonQuery() - идеально подходит для добавление или обновления записей, поскольку, возвращает целое число - добавленных/измененных "рядов".
using System;
using System.Data;
using Npgsql;
public static class NpgsqlUserManual
{
public static void Main(String[] args)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=12345678;Database=testd;");
conn.Open();
NpgsqlCommand command = new NpgsqlCommand("insert into table1 values(1, 1)", conn);
int rowsaffected;
try
{
rowsaffected = command.ExecuteNonQuery();
Console.WriteLine("It was added {0} lines in table table1", rowsaffected);
}
finally
{
conn.Close();
}
}
}
using System.Data;
using Npgsql;
public static class NpgsqlUserManual
{
public static void Main(String[] args)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=12345678;Database=testd;");
conn.Open();
NpgsqlCommand command = new NpgsqlCommand("insert into table1 values(1, 1)", conn);
int rowsaffected;
try
{
rowsaffected = command.ExecuteNonQuery();
Console.WriteLine("It was added {0} lines in table table1", rowsaffected);
}
finally
{
conn.Close();
}
}
}
ExecuteScalar() - получение результата содержащее единственную запись.
NpgsqlCommand command = new NpgsqlCommand("select version()", conn);
String serverversion;
try
{
serverversion = (String)command.ExecuteScalar();
Console.WriteLine("PostgreSQL server version: {0}", serverversion);
}
finally
{
conn.Close();
}
String serverversion;
try
{
serverversion = (String)command.ExecuteScalar();
Console.WriteLine("PostgreSQL server version: {0}", serverversion);
}
finally
{
conn.Close();
}
Получение результата. метод ExecuteReader() и NpgsqlDataReader.
NpgsqlCommand command = new NpgsqlCommand("select * from tablea", conn);
try
{
NpgsqlDataReader dr = command.ExecuteReader();
while(dr.Read())
{
for (i = 0; i < dr.FieldCount; i++)
{
Console.Write("{0} \t", dr[i]);
}
Console.WriteLine();
}
}
finally
{
conn.Close();
}
try
{
NpgsqlDataReader dr = command.ExecuteReader();
while(dr.Read())
{
for (i = 0; i < dr.FieldCount; i++)
{
Console.Write("{0} \t", dr[i]);
}
Console.WriteLine();
}
}
finally
{
conn.Close();
}
Использование параметров в запросах.
Параметры позволяют динамически добавлять значения в текст запроса в режиме run-time. Обозначение параметра в тексте запроса производится с использованием префикса ":"
// Заявление параметров в строке запроса
using(NpgsqlCommand command = new NpgsqlCommand("select * from tablea where column1 = :value1", conn))
{
//Добавим параметр в коллекцию специального типа
command.Parameters.Add(new NpgsqlParameter("value1", NpgsqlDbType.Integer));
//Добавим значение в параметр в команда
command.Parameters[0].Value = 4;
using(NpgsqlDataReader dr = command.ExecuteReader())
{
while(dr.Read())
{
for (i = 0; i < dr.FieldCount; i++)
{
Console.Write("{0} \t", dr[i]);
}
Console.WriteLine();
}
}
}
using(NpgsqlCommand command = new NpgsqlCommand("select * from tablea where column1 = :value1", conn))
{
//Добавим параметр в коллекцию специального типа
command.Parameters.Add(new NpgsqlParameter("value1", NpgsqlDbType.Integer));
//Добавим значение в параметр в команда
command.Parameters[0].Value = 4;
using(NpgsqlDataReader dr = command.ExecuteReader())
{
while(dr.Read())
{
for (i = 0; i < dr.FieldCount; i++)
{
Console.Write("{0} \t", dr[i]);
}
Console.WriteLine();
}
}
}
Отлично, спасибо огромное. Но почему не написал как удалить таблицу?
ОтветитьУдалитьВсе понял с ExecuteNonQuery() можно и удалять таблицы. Как бы еще узнать о существовании таблицы?
ОтветитьУдалитьа как произвести апдейт?
ОтветитьУдалить