C#使用DataSet连接MariaDB生成水晶报表port关键字不支持报错如何解决
错误原因
SqlConnection是SQL Server专属的数据库连接类,无法识别MySQL/MariaDB连接串中的port参数,才会触发该报错。你使用的数据库是MariaDB,需要用对应的MySQL专属ADO.NET组件进行数据库连接。
解决步骤
- 首先在项目中安装MySQL官方.NET驱动:打开NuGet包管理器,搜索安装
MySql.Data包,匹配你当前项目的.NET版本即可。 - 第二步在你的
CrystalReportDemoController代码顶部添加命名空间引用:
using MySql.Data.MySqlClient;
- 第三步替换你代码中所有SQL Server专属的数据库操作类:
- 将
SqlConnection替换为MySqlConnection - 将
SqlCommand替换为MySqlCommand - 将
SqlDataReader替换为MySqlDataReader
- 将
修改后的ExeQuery方法参考:
private MySqlDataReader ExeQuery(string str) { MySqlDataReader dr = null; MySqlConnection conn = new MySqlConnection(erpConnectionString); conn.Open(); using (MySqlCommand cmd = new MySqlCommand(str,conn)) { cmd.CommandType = CommandType.Text; cmd.CommandTimeout = 50000; dr = cmd.ExecuteReader(); } return dr; }
额外说明
你现有的Web.config连接串配置、读取数据后绑定到水晶报表的逻辑无需修改,调整完数据库操作类后即可正常运行。
内容的提问来源于stack exchange,提问作者New User
相关产品推荐
相关产品推荐

