C#操作Access之读取mdb浅析

C#操作Access之读取mdb是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。

C#操作Access主要知识点如下:

 
 
  1. using System.Data.OleDb;  
  2.  
  3. using System.Data; 

C#操作Access连接字符串:

 
 
  1. String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;  
  2.  
  3. Data Source=product.mdb"; 

C#操作Access建立连接:

 
 
  1. OleDbConnection connection = new OleDbConnection(connectionString); 

C#操作Access使用OleDbCommand类来执行Sql语句:

 
 
  1. OleDbCommand cmd = new OleDbCommand(sql, connection);  
  2.  
  3. connection.Open();  
  4.  
  5. cmd.ExecuteNonQuery(); 

C#操作Access之读取mdb实例如下:

本例返回的是一个DataTable,如需其他格式可以自行转换。

 
 
  1. // 读取mdb数据   
  2. public static DataTable ReadAllData(string tableName,   
  3. string mdbPath,ref bool success)   
  4. {   
  5.     DataTable dt = new DataTable();   
  6.     try   
  7.     {   
  8. DataRow dr;   
  9.  
  10. //1、建立连接 C#操作Access之读取mdb  
  11.  
  12. string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="   
  13. + mdbPath + ";Jet OLEDB:Database  Password=haoren";   
  14. OleDbConnection odcConnection = new OleDbConnection(strConn);   
  15.  
  16. //2、打开连接 C#操作Access之读取mdb  
  17. odcConnection.Open();   
  18.  
  19. //建立SQL查询   
  20. OleDbCommand odCommand = odcConnection.CreateCommand();   
  21.  
  22. //3、输入查询语句 C#操作Access之读取mdb  
  23.  
  24. odCommand.CommandText = "select * from " + tableName;   
  25.  
  26. //建立读取   
  27. OleDbDataReader odrReader = odCommand.ExecuteReader();   
  28.  
  29. //查询并显示数据   
  30. int size = odrReader.FieldCount;   
  31. for (int i = 0; i < size; i++)   
  32. {   
  33.     DataColumn dc;   
  34.     dc = new DataColumn(odrReader.GetName(i));   
  35.     dt.Columns.Add(dc);   
  36. }   
  37. while (odrReader.Read())   
  38. {   
  39.     dr = dt.NewRow();   
  40.     for (int i = 0; i < size; i++)   
  41.     {   
  42. dr[odrReader.GetName(i)] =   
  43. odrReader[odrReader.GetName(i)].ToString();   
  44.     }   
  45.     dt.Rows.Add(dr);   
  46. }   
  47. //关闭连接 C#操作Access之读取mdb  
  48. odrReader.Close();   
  49. odcConnection.Close();   
  50. success = true;   
  51. return dt;   
  52.     }   
  53.     catch   
  54.     {   
  55. success = false;   
  56. return dt;   
  57.     }   

C#操作Access之读取mdb的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之读取mdb有所帮助。

c# 读取.mdb中的栅格数据 string path = @"E:\zxl\npgDB.mdb"; axMapControl1.ActiveView.Clear(); axMapControl1.ActiveView.Refresh(); pFWorkspace = OpenAccessWorkspace(path, pFWorkspace); IFeatureLayer iflayer; iflayer = new FeatureLayerClass(); iflayer.FeatureClass = pFWorkspace.OpenFeatureClass("地标"); axMapControl1.AddLayer(iflayer, 0); IFeatureLayer featureLayer = iflayer; //this.axMapControl1.Map.get_Layer(0) as IFeatureLayer; IFeatureCursor featureCursor; IFeature feature; IGeometry geometry; IActiveView activeView = this.axMapControl1.ActiveView; ITopologicalOperator topo; featureCursor = featureLayer.FeatureClass.Search(null, false); feature = featureCursor.NextFeature(); ISpatialFilter spatialFilter = new SpatialFilterClass(); IFeatureSelection featureSelection; if (feature != null) { MessageBox.Show("if","tishi"); topo = feature.Shape as ITopologicalOperator; //double bufferLength = ConvertPixelsToMapUnits(activeView, 2); //geometry = topo.Buffer(bufferLength); geometry = topo.Buffer(1000); spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; spatialFilter.Geometry = geometry; spatialFilter.GeometryField = featureLayer.FeatureClass.ShapeFieldName; spatialFilter.SubFields = "name"; spatialFilter.WhereClause = "name='第一教学楼'"; featureSelection = featureLayer as IFeatureSelection; featureSelection.SelectFeatures(spatialFilter, esriSelectionResultEnum.esriSelectionResultNew, false); ISelectionSet selectionSet = featureSelection.SelectionSet; ICursor cursor; selectionSet.Search(null, true, out cursor); featureCursor = cursor as IFeatureCursor; feature = featureCursor.NextFeature(); while (feature != null) { MessageBox.Show("while", "tishi"); this.axMapControl1.Map.SelectFeature(featureLayer, feature); feature = featureCursor.NextFeature(); } // activeView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null); activeView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, geometry.Envelope); } } private void button13_Click(object sender, EventArgs e) { string path = @"E:\zxl\npgDB.mdb"; axMapControl1.ActiveView.Clear(); axMapControl1.ActiveView.Refresh(); pFWorkspace = OpenAccessWorkspace(path, pFWorkspace); IFeatureLayer iflayer; iflayer = new FeatureLayerClass(); iflayer.FeatureClass = pFWorkspace.OpenFeatureClass("地标"); axMapControl1.AddLayer(iflayer, 0); Filter filter = new Filter(); ISpatialFilter filter1=new SpatialFilterClass(); filter1.WhereClause=""; //filter1. = "CITY_NAME = &apos;Phoenix&apos;"; //Envelope envelope = new Envelope(-119, 32, -113, 35); //filter1.Geometry = envelope; //DisplayBuffer displaybuffer = new DisplayBuffer(); //displaybuffer.Distance = 200; //displaybuffer.Units = BufferUnits.Miles; //SimpleRenderer bufferrenderer = new SimpleRenderer(); //SimpleFillSymbol sfs = new SimpleFillSymbol(); //sfs.Color = System.Drawing.Color.Yellow; //sfs.Transparency = 50.0; //bufferrenderer.Symbol = sfs; //FeatureLayer bufferlayer = iflayer.CreateBufferLayer(filter, displaybuffer, bufferrenderer, "mybuffer"); //mapview.Layers.Add(bufferlayer); //mapview.Draw(); Geoprocessor gp=new Geoprocessor();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值