C#中的GIS二次开发,如何通过代码实现MDB中的数据加载
时间: 2024-09-15 14:06:38 浏览: 47
ArcGIS Engine开发:加载MDB中的数据(C#)
5星 · 资源好评率100%
在C#进行GIS二次开发时,如果想要从Microsoft Access数据库(.mdb)中加载数据,可以使用ADO.NET(ActiveX Data Objects .NET)提供的`OleDbConnection`和`OleDbDataReader`。以下是一个基本的例子:
首先,确保添加了对System.Data.OleDb的引用:
```csharp
using System.Data.OleDb;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
// 连接字符串,替换为实际的数据库路径
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\YourDatabase.mdb;Mode=ShareDenyNone;User Id=admin;Password=your_password";
// 创建OleDbConnection实例
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// 打开数据库连接
connection.Open();
// SQL 查询(这里以表名作为示例,你需要替换为实际表名)
string sqlQuery = "SELECT * FROM YourTable";
// 创建OleDbCommand对象
using (OleDbCommand command = new OleDbCommand(sqlQuery, connection))
{
// 使用命令创建一个数据适配器
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
// 创建一个DataTable对象来存储查询结果
DataTable dataTable = new DataTable();
// 填充DataTable
adapter.Fill(dataTable);
// 现在你可以遍历DataTable,处理每一条数据
foreach (DataRow row in dataTable.Rows)
{
// 访问每一列的数据
string column1Value = row["Column1"].ToString();
int column2Value = Convert.ToInt32(row["Column2"]);
// ...处理其他列
Console.WriteLine($"Column1: {column1Value}, Column2: {column2Value}");
}
} // Close the command when done
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
} // Close the connection when done
}
}
```
这个例子中,我们首先建立了一个连接,然后执行SQL查询,填充到一个DataTable中,最后遍历DataTable显示数据。记得替换掉`YourDatabase.mdb`、`YourTable`以及列名和密码。
阅读全文