輕鬆搞定通過c#連接postgis數據庫並且實現增刪改查功能

1.所需工具

1)VS2017 ;2)Postgis數據庫

2.步驟

1)安裝Npgsql類包

2)創建PgsqlHelper類(包括 增刪改查操作的方法)

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using Npgsql;


namespace gis
{
    public class PgsqlHelper
    {
        private static string connStr = @"PORT=5432;DATABASE=postgis;HOST=localhost;PASSWORD=postgres;USER ID=postgres";
        #region 查詢操作
        public static DataTable ExecuteQuery(string sqrstr)
        {
            NpgsqlConnection sqlConn = new NpgsqlConnection(connStr);
            DataTable ds = new DataTable();
            try
            {
                using (NpgsqlDataAdapter sqldap = new NpgsqlDataAdapter(sqrstr, sqlConn))
                {
                    sqldap.Fill(ds);
                }
                return ds;
            }
            catch (System.Exception ex)
            {
               // throw ex;
                return ds;
            }
        }
        #endregion
        #region 增刪改操作
        public static int ExecuteNonQuery(string sqrstr, params NpgsqlParameter[] npgsqlParameters)
        {

            
            NpgsqlConnection sqlConn = new NpgsqlConnection(connStr);
            try
            {
                sqlConn.Open();
                using (NpgsqlCommand pgsqlCommand = new NpgsqlCommand(sqrstr, sqlConn))
                {
                    foreach (NpgsqlParameter parm in npgsqlParameters)
                        pgsqlCommand.Parameters.Add(parm);
                    int r = pgsqlCommand.ExecuteNonQuery();  //執行查詢並返回受影響的行數
                    sqlConn.Close();
                    return r; //r如果是>0操作成功! 
                }
            }
            catch (System.Exception ex)
            {
                return 0;
            }

        }
        #endregion
    }
}

3)編寫一般處理程序頁

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using Npgsql;
using Oracle.ManagedDataAccess.Client;

namespace gis
{
    /// <summary>
    /// Handler1 的摘要說明
    /// </summary>
    public class Handler1 : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
           
            if (context.Request.HttpMethod.ToLower() == "post")
            {
                
                if (context.Request.QueryString["m"] == "Updatenosql")
                {
                    //將字符串寫入響應輸出流(Updatenosql)
                    context.Response.Write(Updatenosql(context));
                }
            }
        }
       
        public string Updatenosql(HttpContext context)
        {
            string outdata = "";
            string objectid = context.Request["objectid"];
            string name = context.Request["name"];
            string sql= "update  hotel set name=:name where objectid=:objectid";
            NpgsqlParameter[] parameters = {
                new NpgsqlParameter(":objectid", int.Parse(objectid)),
                new NpgsqlParameter(":name", name)
            };
            PgsqlHelper.ExecuteNonQuery(sql, parameters);
            outdata = "更新成功";
            return outdata;

        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

4)前端js

$.ajax({
    type: "post",
    data: { objectid: 14, name:"龍港快捷賓館-更新成功"},
    url: "Handler1.ashx?m=Updatenosql",
    dataType: "json",
    success: function (data) {
        console.log(data)
    },
    error: function (err) {
        console.log(err.responseText)
    }
});

3.結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章