private static string conns = "PORT=5432;DATABASE=postgres;HOST=localhost;PASSWORD=123456;USER ID=postgres;";
public static NpgsqlConnection GetConn()
{
NpgsqlConnection conn = new NpgsqlConnection(conns);
//若连接状态是关闭就打开
Console.WriteLine(conn.State);
if (conn.State == ConnectionState.Closed)
conn.Open();
Console.WriteLine(conn.State);
return conn;
}
public static NpgsqlDataReader Query(string sql,params NpgsqlParameter[] parameters)
{
NpgsqlConnection conn = new NpgsqlConnection(conns);
conn.Open();
NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
if (parameters != null && parameters.Length > 0)
{
cmd.Parameters.AddRange(parameters);
}
NpgsqlDataReader reader = cmd.ExecuteReader();
return reader;
}
public static int postSql(string sql) {
NpgsqlConnection conn = null ;
try {
conn = GetConn();
NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
int retule= cmd.ExecuteNonQuery();
return retule;
} catch (Exception ex)
{
MessageBox.Show("录入数据失败","警告",MessageBoxButtons.OK,MessageBoxIcon.Error);
return -1;
} finally {
conn.Close();
}
}
//将查询的NpgsqlReader转换为DataTable
public static DataTable GetDataTable(NpgsqlDataReader reader)
{
DataTable table = new DataTable();
// 添加列
for (int i = 0; i < reader.FieldCount; i++)
{
table.Columns.Add(reader.GetName(i), reader.GetFieldType(i));
}
// 添加行
while (reader.Read())
{
object[] values = new object[reader.FieldCount];
for (int i = 0; i < reader.FieldCount; i++)
{
values[i] = reader.GetValue(i);
}
table.Rows.Add(values);
}
return table;
}