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>

 


版权声明:本文为u33445687原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。