C#中的JDBC

using System;
using System.Collections;
using System.Collections.Specialized;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Data.Common;
using System.Collections.Generic;
using Npgsql;
namespace Maticsoft.DBUtility
{
    /// <summary>
    /// 數據訪問抽象基礎類
    /// Copyright (C) Maticsoft 
    /// </summary>
    public abstract class DbHelperSQL
    {
        //數據庫連接字符串(web.config來配置),多數據庫可使用DbHelperSQLP來實現.
        public static string connect_pos =  ConfigurationManager.ConnectionStrings["ConnectPos"].ConnectionString;

        static string pos = @"" + connect_pos + "";
        /// <summary>
        /// 執行查詢語句,返回DataSet
        /// </summary>
        /// <param name="SQLString">查詢語句</param>
        /// <returns>DataSet</returns>
        public static DataSet Query(string SQLString)
        {
            string pos = @""+connect_pos+"";
            Npgsql.NpgsqlConnection np = new Npgsql.NpgsqlConnection(pos);
            DataSet ds = new DataSet();
            try {
                using (NpgsqlDataAdapter sqldap = new NpgsqlDataAdapter(SQLString, np))
                {
                    sqldap.Fill(ds);
                }
                return ds;
            }catch(Exception ex){
                throw new Exception(ex.Message);
                return ds;
            }
        
        }

        
        ///<summary>
        ///增刪改操作 帶參數
        /// </summary>
        public static int ExecuteNonQuery(string SQLString, params NpgsqlParameter[] cmdParms)
        {


            Npgsql.NpgsqlConnection np = new Npgsql.NpgsqlConnection(pos);
            try
            {
                np.Open();
                using (NpgsqlCommand SqlCommand = np.CreateCommand())
                {
                    PrepareCommand(SqlCommand, np, null, SQLString, cmdParms);
                    int r = SqlCommand.ExecuteNonQuery();  //執行查詢並返回受影響的行數
                    np.Close();
                    return r; //r如果是>0操作成功! 
                }

            }
            catch (Exception ex)
            {
                np.Close();
                Console.WriteLine(ex.ToString());
                return 0;

            }

        }

        ///<summary>
        ///增刪改操作
        /// </summary>
        public static int ExecuteNonQuery(string SQLString)
        {
            using (NpgsqlConnection connection = new NpgsqlConnection(pos))
            {
                using (NpgsqlCommand cmd = new NpgsqlCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (Exception ex)
                    {
                        connection.Close();
                        Console.WriteLine(ex.ToString());
                        return 0;
                        //throw e;
                    }
                }
            }

        }


        private static void PrepareCommand(NpgsqlCommand cmd, NpgsqlConnection conn, NpgsqlTransaction trans, string cmdText, NpgsqlParameter[] cmdParms)
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = cmdText;
            if (trans != null)
                cmd.Transaction = trans;
            cmd.CommandType = CommandType.Text;//cmdType;
            if (cmdParms != null)
            {
                foreach (NpgsqlParameter parameter in cmdParms)
                {
                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                        (parameter.Value == null))
                    {
                        parameter.Value = DBNull.Value;
                    }
                    cmd.Parameters.Add(parameter);
                }
            }
        }

    }

}

這裏麪包含了  查詢 , 無參數的增刪改, 有參數的增刪改 方法

相當於Java中的JDBC

具體如何使用,可以看上一篇博客

 

 

配置數據庫的話,需要一個配置文件 ,Web.config

具體的配置在<connectionStrings>標籤當中

<?xml version="1.0"?>

<!--
  有關如何配置 ASP.NET 應用程序的詳細信息,請訪問
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <!--<connectionStrings>
    <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />
  </connectionStrings>-->
  <connectionStrings>
    <!--<add name="ConString" connectionString="Data Source=10.161.31.195,172.127.1.253;Initial Catalog=dss;Persist Security Info=True;multipleactiveresultsets=true; User ID=postgres;Password=123321" providerName="System.Data.SqlClient"/>-->
    <add name="ConnectPos" connectionString="PORT=5433;DATABASE=dss_net;HOST=172.127.1.252;PASSWORD=123321;USER ID=postgres" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />

    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>

    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />
      </providers>
    </membership>

    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
      </providers>
    </profile>

    <roleManager enabled="false">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>

  </system.web>

  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
 
</configuration>

 

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