版权声明:此文由黑夜の骑士创作,转载请注明出处,交流qq1056291511 https://blog.csdn.net/birdfly2015/article/details/87923301
背景
小伙伴们在做revit二次开发时,可能会需要用到数据库。
本文将介绍Revit如何连接Mysql数据库,
其兄弟篇将介绍Revit如何连接Access数据库
revit连接Access数据库
思路
主要有两种方法:
1. OleDbDataAdapter方式:填入Datatable中,遍历行列读取
2. sqlCommand方式:通过Read()方法,while循环读取
本文将会介绍sqlCommand方式,其兄弟篇体现OleDbDataAdapter方式。
代码
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using MySql.Data.MySqlClient;
namespace Revit_Mysql
{
[Transaction(TransactionMode.Manual)]
class Revit_Mysql : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
Document doc = commandData.Application.ActiveUIDocument.Document;
//输入自己的Mysql账号(一般默认为root)、密码以及数据库名称
String connetStr = "server=127.0.0.1;port=3306;user=root;password=密码; database=数据库名称;";
MySqlConnection conn = new MySqlConnection(connetStr);
conn.Open();//打开通道,建立连接
string sql = "select * from 表名";
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader reader = cmd.ExecuteReader();//执行ExecuteReader()返回一个MySqlDataReader对象
while (reader.Read())//遍历每一行
{
//输出数据库结果,列既可以通过列号,也可以通过列名来得到
//针对不通类型参数,采用相对应的reader.get方法
TaskDialog.Show("连接Mysql数据库", reader.GetString("族名称"));
}
return Result.Succeeded;
}
}
}
注意事项
- 如果想做网络版读取则采用Mysql数据库,如果想做本地读取,采用Access数据库(两种格式)即可。
- 这里介绍了其中一种读取方式,另外一种大家可以参看兄弟篇