SQL数据库的访问类

using System; using System.Data; using System.Data.SqlClient; using System.Diagnostics;

namespace OA {  /// <summary>  /// Dataprocess 的摘要说明。  /// 操作数据库的类  /// </summary>  public class Dataprocess  {

  SqlConnection Conn;   string ConnString;   public Dataprocess()   {    //    // TODO: 在此处添加构造函数逻辑    //        ConnString=System.Configuration.ConfigurationSettings.AppSettings["SqlConn"];    Conn=new SqlConnection(ConnString);   }

  public Dataprocess(string stringConn)   {      ConnString=stringConn;    Conn=new SqlConnection(ConnString);   }

  public string GetConnString()   {    return ConnString;   }

  public SqlConnection GetConn()   {    return Conn;   }

  public SqlConnection GetNewConn()   {    SqlConnection NewConn = new SqlConnection(ConnString);    return NewConn;   }

  #region 获取数据集   public DataSet GetDataSet(string SelectStr)   {    try    {     SqlDataAdapter Da = new SqlDataAdapter(SelectStr, Conn);         DataSet Ds = new DataSet();     Conn.Open();      Da.Fill(Ds);         Conn.Close();     return Ds;    }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();     Debug.Write(ex.ToString());     return null;    }                }

  public DataSet GetDataSet(string SelectStr,string TableName)   {    try    {     SqlDataAdapter Da = new SqlDataAdapter(SelectStr, Conn);         DataSet Ds = new DataSet();     Conn.Open();      Da.Fill(Ds,TableName);         Conn.Close();     return Ds;    }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();     Debug.Write(ex.ToString());     return null;    }                }

  #endregion

  public DataTable GetDataTable(string SelectStr)   {    try    {     SqlDataAdapter Da = new SqlDataAdapter(SelectStr, Conn);         DataSet Ds = new DataSet();     Conn.Open();      Da.Fill(Ds);         Conn.Close();     return Ds.Tables[0];    }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();     Debug.Write(ex.ToString());     return null;    }               }

     public  bool ExecuteNonQuery(string SelectStr)   {

   try    {     SqlCommand Cm = new SqlCommand(SelectStr, Conn);     Conn.Open();     Cm.ExecuteNonQuery();     Conn.Close();     return true;    }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();

    Debug.WriteLine(ex.ToString());     return false;    }

  }

  public  bool ExecuteNonQuery(string SelectStr,ref int IDENTITYValue)   {

   try    {     SqlCommand Cm = new SqlCommand(SelectStr, Conn);     Conn.Open();     Cm.ExecuteNonQuery();     Cm.CommandText="select @@identity";     IDENTITYValue=int.Parse(Cm.ExecuteScalar().ToString());     Conn.Close();     return true;    }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();

    Debug.WriteLine(ex.ToString());     return false;    }

  }

  public  bool ExecuteNonQuery(string SelectStr,int TimeOut)   {

   try    {     SqlCommand Cm = new SqlCommand(SelectStr, Conn);     Cm.CommandTimeout=TimeOut;     Conn.Open();     Cm.ExecuteNonQuery();     Conn.Close();     return true;    }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();

    Debug.WriteLine(ex.ToString());     return false;    }

  }

     public  bool ExecuteNonQuery(string SelectStr,SqlCommand Cm )   {

   try    {     Cm.Connection= new SqlConnection(Conn.ConnectionString);     Cm.CommandText=SelectStr;     Cm.Connection.Open();     Cm.ExecuteNonQuery();     Cm.Connection.Close();     return true;    }    catch(Exception ex)    {     if (Cm.Connection.State != ConnectionState.Closed)      Cm.Connection.Close();

    Debug.WriteLine(ex.ToString());     return false;    }

  }

  public bool ExecuteNonQuery(string[] SelectStrs,SqlCommand Cm)   {    SqlConnection MyConn=new SqlConnection(ConnString);    MyConn.Open();    SqlTransaction MyTrans;    MyTrans=MyConn.BeginTransaction();    Cm.Connection=MyConn;    Cm.Transaction=MyTrans;    try    {            foreach (string SelectStr in SelectStrs)     {      if(SelectStr!=null&&SelectStr!="")      {       Cm.CommandText= SelectStr;         Cm.ExecuteNonQuery();      }           }     MyTrans.Commit();     return true;    }    catch (SqlException ex)       {     Debug.WriteLine(ex.ToString());     MyTrans.Rollback();     MyConn.Close();     return false;    }    finally    {     MyConn.Close();          }   

  }

  public bool ExecuteNonQuery(string[] SelectStrs,SqlCommand Cm,int TimeOut)   {    SqlConnection MyConn=new SqlConnection(ConnString);    MyConn.Open();    SqlTransaction MyTrans;    MyTrans=MyConn.BeginTransaction();    Cm.CommandTimeout=TimeOut;    Cm.Connection=MyConn;    Cm.Transaction=MyTrans;    try    {            foreach (string SelectStr in SelectStrs)     {      if(SelectStr!=null&&SelectStr!="")      {       Cm.CommandText= SelectStr;         Cm.ExecuteNonQuery();      }           }     MyTrans.Commit();     return true;    }    catch (SqlException ex)       {     Debug.WriteLine(ex.ToString());     MyTrans.Rollback();     MyConn.Close();     return false;    }    finally    {     MyConn.Close();          }   

  }

  public bool ExecuteNonQuery(string[] SelectStrs)   {

       Conn.Open();       SqlCommand Cm=Conn.CreateCommand();     SqlTransaction Trans;    Trans=Conn.BeginTransaction();       Cm.Connection=Conn;    Cm.Transaction=Trans;    try    {            foreach (string SelectStr in SelectStrs)     {      if(SelectStr!=null&&SelectStr!="")      {       Cm.CommandText= SelectStr;         Cm.ExecuteNonQuery();      }           }     Trans.Commit();     return true;         }    catch (Exception e)

   {     try     {      Trans.Rollback();     }     catch (SqlException ex)     {      if (Trans.Connection != null)      {       Console.WriteLine(ex.GetType() +        "取消保存数据");      }     }         Console.WriteLine( e.GetType() +      " 保存数据出现失败.");     Console.WriteLine("数据保存失败.");     if(Conn.State!=ConnectionState.Closed)      Conn.Close();

    return false;    }    finally    {     Conn.Close();         }

  }

  public bool ExecuteNonQuery(string[] SelectStrs,ref int IDENTITYValue,bool First)   {

       Conn.Open();       SqlCommand Cm=Conn.CreateCommand();     SqlTransaction Trans;    Trans=Conn.BeginTransaction();    Cm.Connection=Conn;    Cm.Transaction=Trans;    try    {           foreach (string SelectStr in SelectStrs)     {      if(SelectStr!=null&&SelectStr!="")      {       Cm.CommandText= SelectStr;         Cm.ExecuteNonQuery();       if(First)       {        Cm.CommandText="Select @@IDENTITY";         string strIDENTITYValue=Cm.ExecuteScalar().ToString();        IDENTITYValue=Convert.IsDBNull(Cm.ExecuteScalar())?0:int.Parse(Cm.ExecuteScalar().ToString());        First=false;        for(int j=1;j<SelectStrs.Length;j++)        {         if(SelectStrs[j]!=null)               SelectStrs[j]=SelectStrs[j].Replace("IDENTITYValue",strIDENTITYValue);        }       }             }                 }     Trans.Commit();     return true;         }    catch (Exception e)

   {     try     {      Trans.Rollback();     }     catch (SqlException ex)     {      if (Trans.Connection != null)      {       Console.WriteLine(ex.GetType() +        "取消保存数据");      }     }         Console.WriteLine( e.GetType() +      " 保存数据出现失败.");     Console.WriteLine("数据保存失败.");     if(Conn.State!=ConnectionState.Closed)      Conn.Close();

    return false;    }    finally    {     Conn.Close();         }

  }

  public bool ExecuteProcedure(SqlCommand Cm)   {    try    {     Cm.Connection=Conn;     Cm.CommandType=CommandType.StoredProcedure;     Conn.Open();     Cm.ExecuteNonQuery();     Conn.Close();     return true;    }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();

    Debug.WriteLine(ex.ToString());     return false;    }

  }

 

  #region 获取数据流   public SqlDataReader GetSqlDataReader(string SelectStr)   {    try    {     SqlDataReader Sdr;     SqlCommand Cm = new SqlCommand(SelectStr, Conn);     Conn.Open();     Sdr = Cm.ExecuteReader(CommandBehavior.CloseConnection);         return Sdr;         }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();     Debug.Write(ex.ToString());          return null;    }   }   #endregion

  public DataRow GetSqlDataRow(string SelectStr)   {    try    {        SqlDataAdapter Da = new SqlDataAdapter(SelectStr, Conn);         DataSet Ds = new DataSet();     Conn.Open();      Da.Fill(Ds);         Conn.Close();     if (Ds.Tables[0].Rows.Count>0)      return Ds.Tables[0].Rows[0];     else      return null;

   }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();     Debug.Write(ex.ToString());          return null;    }   }

  public object[] GetSqlDataReaderData(string SelectStr)   {    try    {          SqlCommand Cm = new SqlCommand(SelectStr, Conn);     Conn.Open();     SqlDataReader Sdr = Cm.ExecuteReader(CommandBehavior.CloseConnection);     Sdr.Read();     object[] Data=new object[Sdr.FieldCount-1];     Sdr.GetValues(Data);     Sdr.Close();     return Data;    }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();     Debug.Write(ex.ToString());          return null;    }   }

  public void UpdateData(DataSet Ds)   {    try    {     string TableName = Ds.Tables[0].TableName;     string SqlStr = "Select top 0 * from " + TableName;     SqlDataAdapter Da = new SqlDataAdapter(SqlStr, Conn);     Conn.Open();     Da.Fill(Ds, TableName);     Conn.Close();     SqlCommandBuilder Cmb = new SqlCommandBuilder(Da);     Da.Update(Ds, TableName);    }    catch (Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();     Debug.Write(ex.ToString());         }

  }

  public int GetTableLastID(string TableName)   {

   try    {     int ID = 0;     SqlCommand Cm = new SqlCommand("Select Ident_Current('" + TableName + "')", Conn);     Conn.Open();     ID = Convert.ToInt32(Cm.ExecuteScalar());     Conn.Close();     return ID;    }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();          Debug.Write(ex.ToString());     return 0;    }

  }

  public int GetTableLastID(SqlCommand Cm)   {       int ID = 0;    Cm.CommandText="Select @@IDENTITY";       ID = Convert.ToInt32(Cm.ExecuteScalar());       return ID;   

  }

  public int GetScalar(string SelectStr)   {    int i=0;    try    {          SqlCommand Cm = new SqlCommand(SelectStr, Conn);     Conn.Open();         i = Convert.ToInt32(Cm.ExecuteScalar());     Conn.Close();         }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();     Debug.WriteLine(ex.ToString());              }    return i;

  }

  #region 获取记录条数   public int GetRowsCount(string SelectStr)   {    int Num=0;    try    {             SqlDataAdapter Da = new SqlDataAdapter(SelectStr, Conn);         DataSet Ds = new DataSet();     Conn.Open();      Da.Fill(Ds);         Conn.Close();     Num=Ds.Tables[0].Rows.Count;              }    catch(Exception ex)    {     if (Conn.State != ConnectionState.Closed)      Conn.Close();          Debug.Write(ex.ToString());         }    return Num;

  }   #endregion

  #region 生成新的编号   public string NewNumber(string FieldName,string TableName,int Type)   {    string Number="";    string SelectStr;      SelectStr="select max("+FieldName+") from "+TableName;    DataRow Row;    Row=GetSqlDataRow(SelectStr);    if(Row==null||Row[0] is DBNull)    {     SelectStr="Select StartNumberCode,NumberLength,NumberDesc from tb_NumberCreate where NumberCreateID="+Type;     DataRow CRow=GetSqlDataRow(SelectStr);          Number=CRow[0].ToString().PadRight(Convert.ToInt32(CRow[1])-1,'0')+"1";

   }    else    {     SelectStr="Select StartNumberCode,NumberLength,NumberDesc from tb_NumberCreate where NumberCreateID="+Type;     DataRow CRow=GetSqlDataRow(SelectStr);       Number=CRow[0].ToString()+Convert.ToString(Convert.ToInt32(Row[0].ToString().Remove(0,CRow[0].ToString().Length))+1).PadLeft(Convert.ToInt32(CRow[1])-CRow[0].ToString().Length,'0');                                   }    return Number;   }   #endregion

  #region 读出树结构

  public string DrawAllTree(int ID,string FieldName,string ParentFieldName,string TableName)   {    string Result = String.Empty;    string cmdSQL = "select "+FieldName+"  from "+ TableName+" where "+ParentFieldName +"="+ ID;    try    {     DataSet ds = new DataSet();     SqlDataAdapter cmd1 = new SqlDataAdapter(cmdSQL,Conn);     cmd1.Fill(ds,TableName);     DataTable dt = ds.Tables[TableName];     for(int i=0; i < dt.Rows.Count; i++)     {      int mno = Convert.ToInt32(dt.Rows[i][0].ToString());      if("".Equals(Result))       Result += mno;      else       Result += "," + mno;      string sRes = DrawTree(mno,FieldName, ParentFieldName, TableName);      if(!"".Equals(sRes))       Result +=  "," + sRes;     }         }    catch    {     return Result;    }    return Result;   }

  public string DrawTree(int ID,string FieldName,string ParentFieldName,string TableName)   {    string Result = String.Empty;    string cmdSQL = "select "+FieldName+"  from "+ TableName+" where "+ParentFieldName +"="+ ID;    try    {          DataTable dt = GetDataTable(cmdSQL);     for(int i=0; i < dt.Rows.Count; i++)     {      int mid = Convert.ToInt32(dt.Rows[i][0].ToString());      if("".Equals(Result))       Result += mid;      else       Result += "," + mid;      Result += DrawTree(mid,FieldName,ParentFieldName,TableName);     }         }    catch    {     return Result;    }    return Result;

  }   #endregion

  

 } }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值