首页 > 解决方案 > MSSQL 连接失败,登录凭据正确

问题描述

我有这个导致我错误的 C# 数据库类:

打不开连接!该方法或操作未实现。

这是课程:

using System;

namespace selister
{
    class Program
    {

        public void connect ()
        {
            string connetionString = null;
            SqlConnection cnn;
            connetionString = @"Data Source=MYLAPTOP\\MSSQLSERVER02;Initial Catalog=Selister;Trusted_Connection=True";
            cnn = new SqlConnection(connetionString);
            try
            {
                cnn.Open();
                Console.WriteLine("Connection Open ! ");
                cnn.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Can not open connection ! " + ex.Message);
            }
        }
        static void Main(string[] args)
        {
            Program p = new Program();
             p.connect();   
        }
    }
}

完整的例外是:

System.NotImplementedException: The method or operation is not implemented.
    at selister.SqlConnection.Open() in C:\Users\john.smith\OneDrive - Company SA\Bureau\selister\selister\
        selister\SqlConnection.cs:line 16 
    at selister.Program.connect() in C:\Users\john.smith\OneDrive - Company SA\Bureau\selister\selister\
        selister\Program.cs:line 22 

这就是我使用 SQL Server Management Studio 连接到 mssql 的方式 在此处输入图像描述

标签: c#sql-server

解决方案


完整的异常文本显示您的代码正在调用自定义SqlConnection类,而不是System.Data.SqlClient.SqlConnection该类。

System.NotImplementedException: The method or operation is not implemented.
 at selister.SqlConnection.Open() in C:\Users\john.smith\OneDrive - Company SA\Bureau\selister\selister\selister\SqlConnection.cs:line 16 
 at selister.Program.connect() in C:\Users\john.smith\OneDrive - Company SA\Bureau\selister\selister\selister\Program.cs:line 22

我怀疑您首先编写了代码,当您收到SqlConnection该类丢失的错误时,您单击Fix图标并选择Create Type它创建了一个新的空类,其方法都抛出一个NotImplementedException. 您可能打算改为单击Import,这将添加System.Data.SqlClient包并添加正确的using语句

您应该删除您的自定义类,将Microsoft.Data.SqlClient包添加到您的项目中,并将正确的命名空间添加到您的代码中。您的代码应该被重写以使用using块,即使在出现错误的情况下也可以安全地关闭连接:

using System;
using Microsoft.Data.SqlClient;


namespace selister
{
    class Program
    {

        public void connect ()
        {
            string connetionString = = @"Data Source=MYLAPTOP\\MSSQLSERVER02;Initial Catalog=Selister;Trusted_Connection=True";
            try
            {
                using(var cnn = new SqlConnection(connetionString))
                {
                    cnn.Open();
                    Console.WriteLine("Connection Open ! ");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Can not open connection !\n " + ex.ToString());
            }
        }
    }
}


推荐阅读