1、C#连接达梦数据库需要引用DM.DmProvider.dll(目录地址:D:\dmdbms\drivers\dotNet\DmProvider)
注意:什么.net版本就拿对应的dll,例如.net 4.6可以拿D:\dmdbms\drivers\dotNet\DmProvider\net45中的DM.DmProvider.dll
2、配置Web.config(注意:双引号需要用"代替)
<!--达梦数据库连接字符串和SQL语句-->
<add key="ConnectionString" value="Server=localhost;User Id=SYSDBA;Password=123456789;Database=DAMENG;" />
<add key="SQL" value="select * from "dbo"."V_tag_expinfo";" /><!--"代替"-->
3、实例代码:
//引用命名空间
using Dm;
//从达梦数据库取数据
public List<TagDict> GetTagDicts(ref string Message)
{
List<TagDict> TagDictData = new List<TagDict>();
// 连接字符串
string ConnectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString();
string SQL = ConfigurationManager.AppSettings["SQL"].ToString();
// 创建连接对象
using (DmConnection conn = new DmConnection(ConnectionString))
{
try
{
// 打开连接
conn.Open();
// 创建命令
DmCommand cmd = new DmCommand(SQL, conn);
// 执行命令,得到数据读取器
DmDataReader reader = (DmDataReader)cmd.ExecuteReader();
// 遍历结果集
while (reader.Read())
{
TagDict tagDict = new TagDict();
// 获取名为 "ColumnName" 的列的数据
tagDict.name = reader["TAG_NAME"].ToString();
tagDict.unit = reader["TAG_UNIT"].ToString();
tagDict.desc = reader["TAG_DESC"].ToString();
tagDict.ALARM_H = reader["ALARM_H"].ToString();
tagDict.ALARM_L = reader["ALARM_L"].ToString();
TagDictData.Add(tagDict);
}
return TagDictData;
}
catch (Exception ex)
{
Message = "达梦数据库连接失败: " + ex.Message;
return null;
}
finally
{
// 关闭连接
conn.Close();
}
}
}
//实体类
public class TagDict
{
public string id;//标签的16进制编码
public string name;//实时数据库的标签名称(含装置前缀)
public string desc;//描述
public string unit;//数据单位
public string ALARM_H;//工艺配置:高报警
public string ALARM_L;//工艺配置:低报警
}