C# ServerVersion = “Conn.ServerVersion”引发了“System.InvalidOperationException”类型的异常

SQL Server2012 服务器名称 导致 C# 连接数据库错误

开发环境 VS2013+Sql2012
使用公共静态类,来封装用于连接数据库的字符串,在执行Button时,你妈,简直是你妈不知道哪里错了!
断点检查提示:C# ServerVersion = “Conn.ServerVersion”引发了“System.InvalidOperationException”类型的异常
困扰了很久,NM有种重装系统的冲动,后来秉了遇到问题解决问题的宗旨,坚持找各种书籍问各种人,始终找不到问题,直到有一天,在去解决客户数据库问题的时候,(客户用的数据库是2008)使用localhost登录的时候发现登录不了,NM突然之间感觉这个问题和我的问题一样嘛,后来回到家,修改SQL服务器名称,问题终于解决了!现贴出来!
你需要做以下两个修改来将代码改为 Java 8 版本: 1. 在 `String listenSql` 中将 `\` 替换为 `\\`,因为在 Java 字符串中,`\` 是一个特殊字符需要转义。 2. 在创建连接时,需要使用 Java 8 版本的 JDBC 驱动程序。你可以从 Microsoft 下载中心下载适用于 Java 8 的 Microsoft JDBC 驱动程序。 修改后的代码如下所示: ``` import java.sql.*; public class TableMonitor { public static void main(String[] args) { try { // 加载数据库驱动程序 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 连接数据库 Connection conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=GD2030", "sa", "root"); // 创建扩展事件会话 Statement stmt = conn.createStatement(); String createSessionSql = "CREATE EVENT SESSION MyTableChanges ON SERVER ADD EVENT sqlserver.sp_statement_completed (WHERE object_name = 'Client')"; stmt.execute(createSessionSql); // 启动扩展事件会话 String startSessionSql = "ALTER EVENT SESSION MyTableChanges ON SERVER STATE = START"; stmt.execute(startSessionSql); // 监听扩展事件会话 String listenSql = "SELECT * FROM sys.fn_xe_file_target_read_file('C:\\MyTableChanges.xel', null, null, null)"; PreparedStatement pstmt = conn.prepareStatement(listenSql); ResultSet rs = pstmt.executeQuery(); // 处理扩展事件 while (rs.next()) { String event = rs.getString(1); System.out.println(event); } // 关闭连接 rs.close(); pstmt.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 这样修改后,你就可以在 Java 8 环境中运行这个程序了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值