首页 > 解决方案 > 在 c# 中连接到 SQL 'Connection is invalid' 错误

问题描述

我正在努力在我的 windows 窗体 c# 程序和没有用户名或密码的 sqlexpress 数据库之间建立连接,身份验证类型是 windows 身份验证。

我相信问题出在字符串上,但我不明白,我可以在 Windows 控制台应用程序中连接,但不能在 Windows 窗体应用程序中连接。我尝试了各种连接字符串..

最后一行产生错误

System.ArgumentException: '连接无效'

非常感谢任何积极的帮助,到处寻找并搜索 SO 并找不到类似的问题

        {
            // New instance of ExcelEngine created (opening excel with no workbooks open)
            using (ExcelEngine excelEngine = new ExcelEngine())
            {
                // Create excel application object
                IApplication application = excelEngine.Excel;

                //Assigns default application version
                application.DefaultVersion = ExcelVersion.Excel2013;

                // New workbook created with one worksheet
                IWorkbook workbook = application.Workbooks.Create(1);

                //Access a worksheet in workbook
                IWorksheet worksheet = workbook.Worksheets[0];

                if (worksheet.ListObjects.Count == 0)
                {
                    //Estabilishing the connection in the worksheet 
                    string connectionString = "Server =NBE\\SQLEXPRESS; Initial Catalog = BikeStores; Trusted_Connection = True";
                    // "Data Source = NICHOLASBOACHIE\\SQLEXPRESS; Initial Catalog = BikeStores; Integrated Security = SSPI";

                    string query = "SELECT * FROM [BikeStores].[sales].[staffs]";

                    IConnection connection = workbook.Connections.Add("SQLConnection", "Connection with SQL Server", connectionString, query, ExcelCommandType.Sql);

                    //Create Excel table from external connection (intitate worksheet)
                    worksheet.ListObjects.AddEx(ExcelListObjectSourceType.SrcQuery, connection, worksheet.Range["A1"]);


                } 

标签: c#sql-serverwinforms

解决方案


看起来您的连接字符串格式无效。System.Data.SqlClient 库有一个 SqlConnectionStringBuilder 类,您可能会发现它很有用。

它记录在这里

自从我使用这个类以来已经有一段时间了,但是是这样的:

SqlConnection myConnection = new SqlConnection();
SqlConnectionStringBuilder myBuilder = new SqlConnectionStringBuilder();
myBuilder.IntegratedSecurity = true;
myBuilder.InitialCatalog = "BikeStores";
myBuilder.DataSource = "NBE\\SQLEXPRESS";
myConnection.ConnectionString = myBuilder.ConnectionString;

推荐阅读