api、DBHlper
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Xml;
using System.Xml.Serialization;
namespace BandungAPI.Common
{
public static class WBSQLHelper
{
public static string connectionString = ConfigurationManager.AppSettings["ConnectionEGWB"];
public static void CloseConnection(SqlConnection conn)
{
if (null != conn && conn.State != ConnectionState.Closed)
{
conn.Close();
}
}
public static void CloseReader(SqlDataReader sr)
{
if (null != sr && sr.IsClosed != true)
{
sr.Close();
}
}
public static int ExecuteNonQuery(CommandType commandType, string commandText, params SqlParameter[] prms)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(connectionString);
cmd.CommandText = commandText;
cmd.CommandType = commandType;
if (null != prms && prms.Length > 0)
{
foreach (SqlParameter sp in prms)
{
cmd.Parameters.Add(sp);
}
}
try
{
cmd.Connection.Open();
return cmd.ExecuteNonQuery();
}
catch (Exception err)
{
throw new Exception(err.Message);
}
finally
{
CloseConnection(cmd.Connection);
}
}
public static DataSet ExecuteDataSet(string commandText)
{
SqlConnection con = new SqlConnection(connectionString);
SqlDataAdapter da = new SqlDataAdapter(commandText, con);
DataSet ds = new DataSet();
try
{
da.Fill(ds);
return ds;
}
catch (Exception err)
{
throw new Exception(err.Message);
}
finally
{
CloseConnection(da.SelectCommand.Connection);
}
}
public static List<string> ExeProc(string procName, List<SqlParameter> parameters, List<string> outputNameList)
{
List<string> msgs = new List<string>();
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(procName, conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
foreach (SqlParameter item in parameters)
{
cmd.Parameters.Add(item);
}
cmd.ExecuteNonQuery();
foreach (var name in outputNameList)
{
string msg = cmd.Parameters[name].Value.ToString();
msgs.Add(msg);
}
}
return msgs;
}
catch (Exception ex)
{
throw ex;
}
}
public static SqlDataReader ExecuteDataReader(CommandType commandType, string commandText, params SqlParameter[] prms)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(connectionString);
cmd.CommandText = commandText;
cmd.CommandType = commandType;
cmd.Parameters.Clear();
if (null != prms && prms.Length > 0)
{
foreach (SqlParameter sp in prms)
{
cmd.Parameters.Add(sp);
}
}
try
{
cmd.Connection.Open();
SqlDataReader sr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return sr;
}
catch (Exception err)
{
throw new Exception(err.Message);
}
}
public static string ExecuteScalar(CommandType commandType, string commandText, params SqlParameter[] prms)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(connectionString);
cmd.CommandText = commandText;
cmd.CommandType = commandType;
cmd.Parameters.Clear();
if (null != prms && prms.Length > 0)
{
foreach (SqlParameter sp in prms)
{
cmd.Parameters.Add(sp);
}
}
try
{
if (cmd.Connection.State == ConnectionState.Open)
{
cmd.Connection.Close();
}
cmd.Connection.Open();
object o = cmd.ExecuteScalar();
return o == null ? "" : o.ToString();
}
catch (Exception err)
{
throw new Exception(err.Message);
}
finally
{
CloseConnection(cmd.Connection);
}
}
public static string ExecuteXMLScalar(CommandType commandType, string commandText, params SqlParameter[] prms)
{
string str = "";
SqlCommand comm = new SqlCommand();
comm.Connection = new SqlConnection(connectionString);
comm.CommandText = commandText;
comm.CommandType = commandType;
if (null != prms && prms.Length > 0)
{
foreach (SqlParameter sp in prms)
{
comm.Parameters.Add(sp);
}
}
comm.Connection.Open();
if (comm != null)
{
XmlReader xr = comm.ExecuteXmlReader();
xr.Read();
while (!xr.EOF)
{
str += xr.ReadOuterXml();
}
xr.Close();
CloseConnection(comm.Connection);
return str;
}
else
{
return "";
}
}
public static SqlParameter GetCmdParameter(string name, SqlDbType dt, object value)
{
SqlParameter sp = new SqlParameter(name, dt);
sp.Value = value;
return sp;
}
public static int ExecToInt32(SqlDataReader reader, string dataName)
{
return reader[dataName] == DBNull.Value ? 0 : Convert.ToInt32(reader[dataName]);
}
public static long ExecToInt64(SqlDataReader reader, string dataName)
{
return reader[dataName] == DBNull.Value ? 0 : Convert.ToInt64(reader[dataName]);
}
public static string ExecToString(SqlDataReader reader, string dataName)
{
return reader[dataName] == DBNull.Value ? "" : reader[dataName].ToString();
}
public static DateTime ExecToDateTime(SqlDataReader reader, string dataName)
{
return reader[dataName] == DBNull.Value ? DateTime.MinValue : Convert.ToDateTime(reader[dataName]);
}
public static Double ExecToDateDouble(SqlDataReader reader, string dataName)
{
return reader[dataName] == DBNull.Value ? 0 : Convert.ToDouble(reader[dataName]);
}
public static decimal ExecToDecimal(SqlDataReader reader, string dataName)
{
return reader[dataName] == DBNull.Value ? 0 : Convert.ToDecimal(reader[dataName]);
}
public static string getString(Object xmlList, string xmlUrl)
{
Type type = xmlList.GetType();
XmlSerializer serializer = new XmlSerializer(type);
Stream fs = new FileStream(xmlUrl, FileMode.Create);
XmlWriter write = new XmlTextWriter(fs, new UTF8Encoding());
serializer.Serialize(write, xmlList);
write.Close();
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.Load(xmlUrl);
return doc.OuterXml;
}
public static DataSet ExecuteDataset(DataSet ds, string ProcName, SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
cmd = BuildQueryCommand(ProcName, commandParameters);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
cmd.Parameters.Clear();
return ds;
}
private static SqlCommand BuildQueryCommand(string storedProcName, SqlParameter[] parameters)
{
SqlCommand cmd = new SqlCommand(storedProcName);
cmd.Connection = new SqlConnection(connectionString);
cmd.Parameters.Clear();
cmd.CommandType = CommandType.StoredProcedure;
if (parameters != null)
{
foreach (SqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
}
try
{
cmd.Connection.Open();
return cmd;
}
catch (Exception err)
{
throw new Exception(err.Message);
}
finally
{
CloseConnection(cmd.Connection);
}
}
}
}