.net连接access操作类
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Data; 7 using System.Data.OleDb; 8 using System.Web.UI.WebControls; 9 using System.IO; 10 11 /// <summary> 12 ///MyClasses 的摘要说明 13 /// </summary> 14 namespace newClasses 15 { 16 17 //自定义数据库连接类 18 public class superConn{ 19 20 public OleDbConnection cnn; 21 private OleDbCommand cmd; 22 private OleDbDataReader datar; 23 24 public superConn(string mdbFileName) { 25 string _path = "~\\App_Data\\" + mdbFileName; 26 string str_conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" 27 + System.Web.HttpContext.Current.Server.MapPath(_path); 28 //MapPath(_path); 29 cnn = new OleDbConnection(str_conn); 30 } 31 32 // superConn.open() 33 public void open() { 34 cnn.Open(); 35 } 36 37 public void close() { 38 cnn.Close(); 39 } 40 41 public OleDbDataReader GetDataReader(string _sql) { 42 cmd = new OleDbCommand(_sql, cnn); 43 datar = cmd.ExecuteReader(); 44 return datar; 45 } 46 47 //返回DDL控件,表名列表 48 public DropDownList GetDDLforTableList() { 49 DropDownList _ddl = new DropDownList(); 50 51 cnn.Open(); 52 53 DataTable dt = cnn.GetSchema("Tables", null); 54 55 foreach (DataRow dr in dt.Select("TABLE_TYPE='TABLE'")) 56 { 57 string s = dr["TABLE_NAME"].ToString(); 58 _ddl.Items.Add(new ListItem(s)); 59 60 } 61 62 cnn.Close(); 63 64 return _ddl; 65 } 66 67 //返回table,详细表内容 68 public Table GetTable(string _tableName) { 69 Table _tbl = new Table(); 70 cnn.Open(); 71 72 cmd = new OleDbCommand("SELECT * FROM "+_tableName, cnn); 73 datar = cmd.ExecuteReader(); 74 75 76 int i_fcount = datar.FieldCount; 77 78 TableHeaderRow thr = new TableHeaderRow(); 79 for (int i = 0; i < i_fcount; i++) 80 { 81 TableHeaderCell thd = new TableHeaderCell(); 82 thd.Text = datar.GetName(i); 83 thr.Cells.Add(thd); 84 85 } 86 _tbl.Rows.Add(thr); 87 88 89 90 while (datar.Read()) 91 { 92 TableRow tr = new TableRow(); 93 for (int i = 0; i < i_fcount; i++) 94 { 95 TableCell td = new TableCell(); 96 td.Text = datar[i].ToString(); 97 tr.Cells.Add(td); 98 } 99 100 _tbl.Rows.Add(tr); 101 } 102 103 104 cnn.Close(); 105 return _tbl; 106 } 107 108 } 109 110 111 112 113 114 //文件管理类 115 public class superFile { 116 117 public string _fileName; 118 public string _fileTitle; 119 public string _fileDir="~/filesDownload"; 120 121 //1 122 public superFile() { 123 _fileName = _fileTitle = ""; 124 } 125 126 //2 127 public superFile(int _id) { 128 _fileName = _fileTitle = ""; 129 superConn sconn = new superConn("fileMNG.mdb"); 130 sconn.open(); 131 string _sql = "SELECT * FROM T_FILES WHERE f_id=" + _id; 132 OleDbDataReader dr = sconn.GetDataReader(_sql); 133 if (dr.Read()) 134 { 135 _fileTitle = dr["f_title"].ToString(); 136 _fileName = dr["f_name"].ToString(); 137 } 138 sconn.close(); 139 140 } 141 142 //下载 143 public void fileDownload() { 144 string _path = System.IO.Path.Combine(HttpContext.Current.Server.MapPath(_fileDir),_fileName); 145 146 if (System.IO.File.Exists(_path)) 147 { 148 149 HttpContext.Current.Response.Clear(); 150 HttpContext.Current.Response.Buffer = true; 151 152 HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + _fileTitle); 153 HttpContext.Current.Response.ContentType = "application/unknow"; 154 HttpContext.Current.Response.TransmitFile(_path); 155 HttpContext.Current.Response.End(); 156 157 } 158 159 } 160 161 162 } 163 164 165 166 //读取文章的类 167 public class superArtReader{ 168 169 public string ArtTitle; 170 public string ArtContent; 171 private string ArtID; 172 173 /// <summary> 174 /// 构造一个空文章对象 175 /// </summary> 176 public superArtReader() { 177 ArtTitle = ""; 178 ArtContent = ""; 179 } 180 181 182 183 /// <summary> 184 /// 通过ID从数据库获取对应ID的文章 185 /// </summary> 186 /// <param name="artID"></param> 187 public superArtReader(string artID) { 188 ArtID = artID; 189 ArtTitle = ""; 190 ArtContent = ""; 191 192 superConn scnn = new superConn("DATA.mdb"); 193 scnn.open(); 194 string _sql = "select * from T_article WHERE art_id=" + artID; 195 OleDbDataReader dr = scnn.GetDataReader(_sql); 196 if (dr.Read()) 197 { 198 ArtTitle = dr["art_ttl"].ToString(); 199 ArtContent=dr["art_content"].ToString(); 200 } 201 scnn.close(); 202 203 } 204 205 206 207 } 208 209 210 211 212 //新闻类:superNews静态类 213 //superNewsItem动态类 214 215 //superNewsItem动态类 216 public class superNewsItem { 217 private int news_id; 218 private int news_ncid; 219 private string nc_ttl; 220 221 public string news_ttl; 222 public string news_guide; 223 public DateTime news_date; 224 public int news_imgid; 225 private string img_url; 226 public string news_content; 227 public int news_order; 228 public Boolean news_enable; 229 public Boolean news_home; 230 231 /// <summary> 232 /// 构造空新闻条目 233 /// </summary> 234 public superNewsItem(){ 235 236 237 } 238 239 /// <summary> 240 /// 根据新闻的ID,从数据库获取新闻和相关信息; 241 /// </summary> 242 /// <param name="newsid"></param> 243 public superNewsItem(int newsid) { 244 superConn scnn = new superConn("DATA.mdb"); 245 scnn.open(); 246 string _sql = "SELECT T_NEWS.*, T_imgMng.img_url, List_newsClass.nc_ttl FROM List_newsClass INNER JOIN (T_imgMng INNER JOIN T_NEWS ON T_imgMng.img_id = T_NEWS.news_imgid) ON List_newsClass.nc_id = T_NEWS.news_ncid WHERE news_id=" + newsid; 247 OleDbDataReader dr = scnn.GetDataReader(_sql); 248 if (dr.Read()) { 249 news_id = int.Parse(dr["news_id"].ToString()); 250 news_ncid = int.Parse(dr["news_ncid"].ToString()); 251 nc_ttl = dr["nc_ttl"].ToString(); 252 news_ttl = dr["news_ttl"].ToString(); 253 news_guide = dr["news_guide"].ToString(); 254 news_date = (DateTime)dr["news_date"]; 255 news_imgid = int.Parse(dr["news_imgid"].ToString()); 256 img_url = dr["img_url"].ToString(); 257 news_content = dr["news_content"].ToString(); 258 news_order = int.Parse(dr["news_order"] is DBNull?"0":dr["new_order"].ToString()); 259 news_enable = (Boolean)dr["news_enable"]; 260 news_home = (Boolean)dr["news_home"]; 261 } 262 scnn.close(); 263 } 264 265 266 //更细致:将新闻类别设定为一个类,有属性ID,ClassName, 返回一个新闻类别的类,更符合调用逻辑 267 /// <summary> 268 /// 获取类别名称 269 /// </summary> 270 /// <returns>string型,类别名称</returns> 271 public string getClassName() { 272 return nc_ttl; 273 } 274 275 public int getClassID() { 276 return news_ncid; 277 } 278 279 /// <summary> 280 /// 以类别ID来设置新闻所属类别 281 /// </summary> 282 /// <param name="classID"></param> 283 public void setClass(int classID) { 284 superConn scnn = new superConn("DATA.mdb"); 285 scnn.open(); 286 string _sql = "SELECT * FROM List_newsClass WHERE nc_id=" + classID; 287 OleDbDataReader dr = scnn.GetDataReader(_sql); 288 if (dr.Read()) { 289 news_ncid = int.Parse(dr["nc_id"].ToString()); 290 nc_ttl = dr["nc_ttl"].ToString(); 291 } 292 scnn.close(); 293 } 294 295 296 } 297 298 299 300 301 302 //图片管理类 303 //1. 静态类,图片上传类,只提供对应的方法 304 public static class superImgUploader { 305 306 307 308 /// <summary> 309 /// 返回待上传文件的数量 310 /// </summary> 311 /// <returns></returns> 312 public static int imgsCount() { 313 int _count = 0; 314 foreach (superImg _img in (superImg[])HttpContext.Current.Session["UploadImgs"]) { 315 if (_img != null) { _count++; } 316 } 317 return _count; 318 } 319 320 /// <summary> 321 /// 添加一个图片对象到列表中 322 /// </summary> 323 /// <param name="ObjectImg">图片对象superImg</param> 324 /// <returns>返回添加结果</returns> 325 public static Boolean addImg(superImg ObjectImg) { 326 Boolean _added = false; 327 for (int i = 0; i < 10; i++) { 328 if (((superImg[])HttpContext.Current.Session["UploadImgs"])[i] == null) { 329 ((superImg[])HttpContext.Current.Session["UploadImgs"])[i] = ObjectImg; 330 _added = true; 331 break; 332 } 333 } 334 return _added; 335 } 336 337 338 /// <summary> 339 /// 从列表中移除指定图片对象 340 /// </summary> 341 /// <param name="imgIndex">0-9 图片列表编号索引</param> 342 public static void removeImg(int imgIndex) { 343 ((superImg[])HttpContext.Current.Session["UploadImgs"])[imgIndex] = null; 344 } 345 346 347 /// <summary> 348 /// 清除所有上传列表 349 /// </summary> 350 public static void clear() { 351 HttpContext.Current.Session["UploadImgs"] = new superImg[10]; 352 } 353 354 355 /// <summary> 356 /// 上传列表中的所有文件 357 /// </summary> 358 public static void uploadAll() { 359 foreach (superImg si in (superImg[])HttpContext.Current.Session["UploadImgs"]) 360 { 361 if (si != null) 362 { 363 if (si.readToUpload() == true) 364 { 365 string targPath = HttpContext.Current.Server.MapPath("~/test/" + si.targFname); 366 si.pstImgFile.SaveAs(targPath); 367 368 if (File.Exists(targPath)) 369 { 370 si.uploaded(); 371 } 372 373 } 374 } 375 } 376 clear(); 377 } 378 379 380 381 public static void setCID(int i, int value) { 382 ((superImg[])HttpContext.Current.Session["UploadImgs"])[i].setCID(value); 383 } 384 385 } 386 387 388 389 390 391 392 393 //2.图片对象类 394 public class superImg { 395 396 public HttpPostedFile pstImgFile; 397 public string Title; 398 public string orgFname; 399 public string targFname; 400 401 private int img_id; // 402 public int img_cid; //需要默认值 403 private string img_cname; // 404 405 private Boolean uploadDone; //默认FALSH 406 407 408 409 410 411 /// <summary> 412 /// 构建一个空superImg对象 413 /// </summary> 414 public superImg() { 415 416 } 417 418 419 /// <summary> 420 /// 通过postedFile构建一个superImg对象 421 /// </summary> 422 /// <param name="pstFile"></param> 423 public superImg(HttpPostedFile _pstFile) { 424 pstImgFile = _pstFile; 425 Title = "新上传文件"; 426 orgFname = _pstFile.FileName; 427 targFname = DateTime.Now.ToFileTime().ToString() + Path.GetExtension(orgFname); 428 img_cid = 1; 429 uploadDone = false; 430 } 431 432 433 /// <summary> 434 /// 通过数据库img_id构建对应的superImg对象 435 /// </summary> 436 /// <param name="imgID">数据表T_imgMng.img_id的值</param> 437 public superImg(int imgID) { 438 439 } 440 441 442 /// <summary> 443 /// 检测属性,并返回对象是否具备上传条件 444 /// </summary> 445 /// <returns></returns> 446 public Boolean readToUpload() { 447 Boolean _ready = true; 448 if (pstImgFile == null) { _ready = false; } 449 if (Title == null || Title == "") { _ready = false; } 450 if (orgFname == "" || orgFname == null) { _ready = false; } 451 if (targFname == "" || targFname == null) { _ready = false; } 452 if (uploadDone == true) { _ready = false; } 453 454 return _ready; 455 } 456 457 458 public void uploaded() { 459 uploadDone = true; 460 } 461 462 463 public void setCID(int cidValue) { 464 img_cid = cidValue; 465 } 466 467 468 469 470 } 471 }