http://npgsql.projects.postgresql.org/docs/manual/UserManual.html 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=joe;Password=secret;Database=joedata;"); conn.Open(); conn.Close(); } }
已经有人写了.net的访问接口,应该带例子的
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=joe;Password=secret;Database=joedata;");
conn.Open();
conn.Close();
}
}
{
string xmlResult = String.Empty;
string strSQL = String.Empty;
string _operate = String.Empty; XmlNode dicNode = xmldoc.SelectSingleNode("//dic");
string _tableName = dicNode.Attributes["tablename"].Value;
string _pkey = dicNode.Attributes["pkey"].Value;
string _user_id = dicNode.Attributes["_user_id"].Value.Trim();
string _pkeyValue; string _projectId="none";
if( dicNode.Attributes["projectId"]!=null) _projectId = dicNode.Attributes["projectId"].Value.Trim(); XmlNode itemNode = null;
// XmlNode columnNode = null; itemNode =dicNode.ChildNodes.Item(0);
string _pkeyValueBegin = itemNode.Attributes[_pkey].Value; //获取纠正起始点点号 itemNode =dicNode.ChildNodes.Item(dicNode.ChildNodes.Count-1);
string _pkeyValueEnd = itemNode.Attributes[_pkey].Value; //获取纠正终止点号
int operateIndex =0;
for(int i=1; i< dicNode.ChildNodes.Count-1; i++) //中间点分别纠正
{
itemNode = dicNode.ChildNodes.Item(i);
string tmpSql = "";
if(itemNode != null && itemNode.Name == "item")
{
if(i>1)
{
operateIndex =1;
}
_pkeyValue = itemNode.Attributes[_pkey].Value; //获取ID的值
tmpSql +="select _correctionpoles("+ _pkeyValueBegin +","+ _pkeyValueEnd +","+ _pkeyValue +",'"+ _user_id +"',"+ operateIndex +","+ _pkeyValueBegin +","+ _pkeyValueEnd +");";
}
strSQL = strSQL + tmpSql;
} strSQL = "BEGIN; " + strSQL + " END;";
NpgsqlConnection conn = PostgreSqlClient.OpenConnection();
// NpgsqlTransaction trans = conn.BeginTransaction();
try
{
NpgsqlCommand cmd = conn.CreateCommand();
// cmd.Transaction = trans;
cmd.CommandText = strSQL;
// string resultOfMakeLine ="";
/*
NpgsqlDataReader myReader = cmd.ExecuteReader();
if(myReader.HasRows)
{
do
{
resultOfMakeLine = myReader["_correctionpoles"].ToString();
if(resultOfMakeLine =="error")
{
// trans.Rollback();
xmlResult ="杆塔距基线太远!请重新选择!"; //返回
break;
}
while (myReader.Read())
resultOfMakeLine = myReader["_correctionpoles"].ToString();
if(resultOfMakeLine =="error")
{
// trans.Rollback();
xmlResult ="杆塔距基线太远!请重新选择!"; //返回
break;
}
}while(myReader.NextResult());
}*/
cmd.ExecuteNonQuery();
xmlResult = "success";
}
catch (Exception ex)
{
xmlResult = ex.Message.ToString();
if(xmlResult.ToUpper().IndexOf("ERROR") == -1)
{
xmlResult = "ERROR:" + xmlResult;
}
}
finally
{
conn.Close();
} return xmlResult;
}
#endregion
刚写的给你
可我问的是用存储过程,(传参数,调用存储过程)而不是传 SQL语句给POSTGRES
NpgsqlConnection conn = new NpgsqlConnection(connString);
NpgsqlCommand updateCmd = new NpgsqlCommand(
"myStoredProcedure(@id1, @id2
, @money_param)", conn);updateCmd.CommandType = CommandType.StoredProcedure;
updateCmd.Parameters.Add("@id1", NpgsqlTypes.NpgsqlDbType.Integer);
updateCmd.Parameters.Add("@id2", NpgsqlTypes.NpgsqlDbType.Integer);
updateCmd.Parameters.Add("@money_param", NpgsqlTypes.NpgsqlDbType.Money);updateCmd.Parameters["@id1"].Value = 1;
updateCmd.Parameters["@id_typu"].Value = 7;
updateCmd.Parameters["@wartosc_cennika"].Value = decimal.Parse(textBox1.Text);updateCmd.ExecuteNonQuery(); //here occures exception
//or updateCmdExecuteReader();conn.Close();