封装了sqlserver数据库常用操作:
1 public class SQLServerDatabase 2 { 3 private static SqlConnection m_Connection = null; 4 5 public SQLServerDatabase(string strConnection) 6 { 7 m_Connection = new SqlConnection(strConnection); 8 OpenConnection(); 9 } 10 // 链接数据库操作 11 public SQLServerDatabase(string strServerName, string strDatabaseName, string strUserName, string strPassword, bool bIntegratedSecurity) 12 { 13 string strConnection = "data source = " + strServerName + ";initial catalog = " + strDatabaseName; 14 if (bIntegratedSecurity) 15 { 16 strConnection += ";Integrated Security = SSPI"; 17 } 18 else 19 { 20 strConnection += ";user id = "; 21 strConnection += strUserName; 22 strConnection += ";password = "; 23 strConnection += strPassword; 24 } 25 m_Connection = new SqlConnection(strConnection); 26 OpenConnection(); 27 } 28 // 根据sql语句获得datatable 29 public DataTable GetTableBySQL(string strSQL, bool bAddWithKey = false) 30 { 31 SqlCommand cmd = new SqlCommand(null, m_Connection); 32 cmd.CommandType = CommandType.Text; 33 cmd.CommandText = strSQL; 34 35 SqlDataAdapter da = new SqlDataAdapter(cmd); 36 37 DataTable dTable = new DataTable(); 38 da.Fill(dTable); 39 40 return dTable; 41 } 42 //获得datarow根据sql语句 43 public DataRow GetRowBySQL(string strSQL) 44 { 45 DataTable dTable = GetTableBySQL(strSQL); 46 47 if (dTable.Rows.Count == 0) 48 return null; 49 else 50 return dTable.Rows[0]; 51 } 52 // 执行sql语句 53 public void ExecuteSQL(string strSQL) 54 { 55 SqlCommand cmd = new SqlCommand(null, m_Connection); 56 cmd.CommandType = CommandType.Text; 57 cmd.CommandText = strSQL; 58 cmd.ExecuteNonQuery(); 59 } 60 // 执行事务,传入sql列表 61 public void ExecuteNonQueryTransSql(List<String> lstSql) 62 { 63 SqlConnection conn = m_Connection; 64 SqlTransaction sqlTran = null; 65 SqlCommand cmd = new SqlCommand(); ; 66 try 67 { 68 sqlTran = conn.BeginTransaction(IsolationLevel.ReadCommitted); 69 cmd.Connection = conn; 70 cmd.CommandType = CommandType.Text; 71 cmd.CommandTimeout = 1800; 72 cmd.Transaction = sqlTran; 73 74 foreach (String sql in lstSql) 75 { 76 cmd.CommandText = sql; 77 cmd.ExecuteNonQuery(); 78 } 79 sqlTran.Commit(); 80 } 81 catch (Exception ex) 82 { 83 try 84 { 85 if (sqlTran != null) 86 { 87 sqlTran.Rollback(); 88 } 89 } 90 catch 91 { 92 } 93 throw ex; 94 } 95 finally 96 { 97 cmd.Dispose(); 98 } 99 } 100 //获得最后的ID 101 public int GetLastID() 102 { 103 SqlCommand cmd = new SqlCommand(null, m_Connection); 104 cmd.CommandType = CommandType.Text; 105 cmd.CommandText = "select @@identity"; 106 return System.Convert.ToInt32(cmd.ExecuteScalar()); 107 } 108 109 //判断数据库库中是否有相应的表 110 public bool TableExists(string strTableName) 111 { 112 string sql = "select * from sysobjects where type='U' and name='" + strTableName + "'"; 113 SqlDataAdapter sqlda = new SqlDataAdapter(sql, m_Connection); 114 DataSet ds = new DataSet(); 115 sqlda.Fill(ds); 116 return (ds.Tables[0].Rows.Count != 0); 117 } 118 //得到表名称 119 public List<string> GetTableName() 120 { 121 List<string> listTableName = new List<string>(); 122 123 DataTable dt = GetTableBySQL("select name from sysobjects where type='U'"); 124 foreach (DataRow row in dt.Rows) 125 { 126 listTableName.Add(row["name"].ToString()); 127 } 128 129 return listTableName; 130 } 131 132 133 //判断字段是否存在 134 public bool FieldExists(string strTableName, string strFieldName) 135 { 136 string sql = "select * from syscolumns where id=object_id('" + strTableName + "') and name='" + strFieldName + "'"; 137 SqlDataAdapter sqlda = new SqlDataAdapter(sql, m_Connection); 138 DataSet ds = new DataSet(); 139 sqlda.Fill(ds); 140 return (ds.Tables[0].Rows.Count != 0); 141 } 142 // 关闭链接 143 public void CloseConnection() 144 { 145 m_Connection.Close(); 146 } 147 // 打开链接 148 public void OpenConnection() 149 { 150 m_Connection.Open(); 151 } 152 153 public System.Data.Common.DbCommand NewCommand(string strCommandText) 154 { 155 return new SqlCommand(strCommandText, m_Connection); 156 } 157 //获得表列 158 public DataTable GetColumnTable(string strTableName) 159 { 160 string sql = "select * from syscolumns where id=object_id('" + strTableName + "') "; 161 SqlDataAdapter sqlda = new SqlDataAdapter(sql, m_Connection); 162 DataSet ds = new DataSet(); 163 sqlda.Fill(ds); 164 return (ds.Tables[0]); 165 } 166 }
封装成了一个类,可以直接拿来使用。