postgresql 使用Npgsql提供程序从.NET访问Postgresql
示例
Npgsql是Postgresql最受欢迎的.NET提供程序之一,它ADO.NET兼容并且与其他.NET数据库提供程序几乎相同地使用。
典型的查询是通过创建命令,绑定参数然后执行命令来执行的。在C#中:
var connString = "Host=myserv;Username=myuser;Password=mypass;Database=mydb"; using (var conn = new NpgsqlConnection(connString)) { var querystring = "INSERT INTO data (some_field) VALUES (@content)"; conn.Open(); //使用CommandText和Connection构造函数创建一个新命令 using (var cmd = new NpgsqlCommand(querystring, conn)) { //添加参数并使用NpgsqlDbType枚举设置其类型 var contentString = "你好,世界!"; cmd.Parameters.Add("@content", NpgsqlDbType.Text).Value = contentString; //执行不返回任何结果的查询 cmd.ExecuteNonQuery(); /* It is possible to reuse a command object and open connection instead of creating new ones */ //创建一个新查询并设置其参数 int keyId = 101; cmd.CommandText= "SELECT primary_key, some_field FROM data WHERE primary_key = @keyId"; cmd.Parameters.Clear(); cmd.Parameters.Add("@keyId", NpgsqlDbType.Integer).Value = keyId; //执行命令并逐行读取行 using (NpgsqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) //对于0行或在读取结果的最后一行之后返回false { //读取一个整数值 int primaryKey = reader.GetInt32(0); //要么 primaryKey = Convert.ToInt32(reader["primary_key"]); //读取文字值 string someFieldText = reader["some_field"].ToString(); } } } } //C#“使用”指令为我们调用conn.Close()和conn.Dispose()