Работа с Postgresql в C#
Язык программирования C#Не так давно занялся разработкой приложения на C# работающего на базе PostreSQL, появилась информация которой спешу поделиться. В статье я опишу что необходимо для подключения к PostgreSQL из приложения написанного на C#, и как с ним работать на примерах.
Для того чтобы иметь возможность работать с базами данных PostgreSQL в нашем случае будем использовать Npgsql — .Net Data Provider for Postgresql скачиваем, добавляем Npgsql.dll в свой проект и копируем в папку с скомпилированным проектом необходимые библиотеки (чтобы работало): Npgsql.dll и Mono.Security.dll.
Начнём с подключения к базе:
string conn_param = "Строка подключения к базе"; //Например: "Server=127.0.0.1;Port=5432;User Id=postgres;Password=mypass;Database=mybase;"
string sql = "текст запроса к базе данных";
NpgsqlConnection conn = new NpgsqlConnection(MainParams.ConnectionString);
NpgsqlCommand comm = new NpgsqlCommand(sql, conn);
conn.Open(); //Открываем соединение.
result = comm.ExecuteScalar().ToString(); //Выполняем нашу команду.
conn.Close(); //Закрываем соединение.
Как видно, ничего сложного, всё как всегда.
comm.ExecuteScalar() — возвращает значение.
comm.ExecuteNonQuery() — выполняет запрос на изменение данных.
Пример выборки массива данных:
NpgsqlConnection con = new NpgsqlConnection("строка подключения");
NpgsqlCommand com = new NpgsqlCommand("select * from my_table order by \"NAME\"", con);
con.Open();
NpgsqlDataReader reader;
reader = com.ExecuteReader();
while (reader.Read())
{
try
{
string result = reader.GetString(1);//Получаем значение из второго столбца! Первый это (0)!
}
catch { }
}
con.Close();
Вот собственно и всё самое главное, на мой взгляд.
написал
NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=;Database=Auto;");
conn.Open();
conn.Close();
выдает
Необработанное исключение типа «Npgsql.NpgsqlException» произошло в Npgsql.dll
Дополнительные сведения: ?????: 28P01: ???????????? «postgres» ?? ?????? ???????? ??????????? (?? ??????) Ответить
Дополнительные сведения: ?????: 28P01: ???????????? «postgres» ?? ?????? ???????? ??????????? (?? ??????)
— Напиши нормально без вопросиков, там же не вопросики? Там текст ошибки должен быть…
я думаю проблема в пароле, когда создаешь БД в СУБД он не просит задать пароль
ОтветитьВряд ли, пользователь по умолчанию верный вроде, должно работать. Для пущей уверенности можно задать пароль да проверить.
Странно кракозябрами ругается, я бы по кодировкам посмотрел ещё, но по номерку — причина либо в пароле либо в отсутствии связи с сервером.
ru.pokerstrategy.com/forum/thread.php?threadid=442566 с паролем получаются понты? как пароль задать?
ОтветитьДавно с Postgress-ом не возился и под рукой нету чтобы посмотреть.
Вот тут глянь: http://www.sql.ru/forum/actualthread.aspx?tid=819777 вроде человеку помогли советы, там.
Работа с MySQL в C#
Надеюсь данная публикация не даст читателям повторить мои ошибки и поможет сделать изначально правил (читать далее...)
500OpenXML - Пример создания Excel файла на C#
В данной публикации приведен пример генерации Excel файла при помощи библиотеки OpenXML. Отличие это (читать далее...)
368Передача параметров между формами в C#
Часто возникает необходимость передать определённые параметры между формами в одном приложении, напр (читать далее...)
357Чтение данных из таблиц Excel
Многие материалы которые я здесь описываю, я размещаю для самого себя, в основном чтобы мучительно д (читать далее...)
275Примеры изменения документов Word из C#
В последнее время, довольно часто приходится работать с документами Word из C#. Должен сказать что э (читать далее...)
253
Комментарии: