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>