using System;
using System.Data;
using System.Data.OleDb;
namespace KBManager
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Data
{
private OleDbConnection m_Cn;
private OleDbDataAdapter m_Da;
//private OleDbCommandBuilder m_Cb;
private OleDbCommand m_Cd;
private OleDbTransaction m_Ta;
protected Data()
{
//string sConn = "Provider=SQLOLEDB.1;Persist Security Info=True; Connect Timeout=0;Password=";
//string sServer = "10.194.180.114";
//string sDatabase = "Mobile_Trace";
//string sUsername = "sa";
//string sPassword = "ios";
//sConn = sConn + sPassword + ";User ID=" + sUsername + ";Data Source=" + sServer + ";Initial Catalog=" + sDatabase;
//m_Cn = new OleDbConnection(sConn);
if (ConnectionConfiger.Conn != null)
{
m_Cn = ConnectionConfiger.Conn;
}
m_Cd = new OleDbCommand("", m_Cn);
m_Cd.CommandTimeout = 10;
}
protected Data(string sConn)
{
m_Cn = new OleDbConnection(sConn);
m_Cd = new OleDbCommand("", m_Cn);
m_Cd.CommandTimeout = 10;
}
protected Data(string sServer, string sDatabase, string sUsername, string sPassword)
{
}
public bool ConnectDBSucess(string sServer, string sDatabase, string sUsername, string sPassword)
{
bool sucess = false;
try
{
string sConn = "Provider=SQLOLEDB.1;Password=" + sPassword + ";Persist Security Info=True;User ID=" + sUsername + ";Initial Catalog=" + sDatabase + ";Data Source=" + sServer + ";Connect Timeout=5";
if (ConnectionConfiger.Conn != null)
{
m_Cn = ConnectionConfiger.Conn;
}
else
{
m_Cn = new OleDbConnection(sConn);
m_Cn.Open();
ConnectionConfiger.Conn = m_Cn;
sucess = true;
//m_Cn.Close();
m_Cd = new OleDbCommand("", m_Cn);
m_Cd.CommandTimeout = 10;
}
}
catch
{
sucess = false;
}
return sucess;
}
protected void Open()
{
m_Cn.Open();
}
protected void Close()
{
m_Cn.Close();
}
protected object ExecuteScalar(string sSQL)
{
m_Cd.CommandText = sSQL;
return m_Cd.ExecuteScalar();
}
protected int Execute(string sSQL)
{
m_Cd.CommandText = sSQL;
return m_Cd.ExecuteNonQuery();
}
protected int Execute(string sProcedure, ref OleDbParameter[] sParameters)
{
m_Cd.CommandText = sProcedure;
m_Cd.CommandType = CommandType.StoredProcedure;
m_Cd.Parameters.Clear();
for (int i = 0; i < sParameters.Length; i++)
{
m_Cd.Parameters.Add(sParameters[i]);
}
return m_Cd.ExecuteNonQuery();
}
protected DataSet Select(string sSQL)
{
m_Da = new OleDbDataAdapter(sSQL, m_Cn);
// m_Cb = new OleDbCommandBuilder(m_Da);
// m_Cd = new OleDbCommand(m_Da);
// m_Cd.CommandTimeout = 0;
m_Da.SelectCommand.CommandTimeout = 0;
DataSet ds = new DataSet();
m_Da.Fill(ds);
return ds;
}
protected int Update(DataSet ds)
{
return m_Da.Update(ds);
}
public int ExecuteTransaction(string sSQL)
{
int iRet = 0;
try
{
m_Ta = m_Cn.BeginTransaction();
m_Cd.Transaction = m_Ta;
m_Cd.CommandText = sSQL;
iRet = m_Cd.ExecuteNonQuery();
m_Ta.Commit();
}
catch(Exception ee)
{
m_Ta.Rollback();
iRet = -1;
LogicTool.ShowLog(ee.ToString().Replace("/r/n",""),"Execute SQL Script",Log_Type.Error);
}
return iRet;
}
}
}