类型或命名空间名称“SQLConnection”无法找到。

43

似乎C#账户数据库出了些问题:

在数据库中,我收到如下错误信息:

 

错误1:找不到类型或命名空间名称“Connection”(您是否缺少使用指令或程序集引用?)

我可能做错了什么?我想连接到Accounts数据库。

表格

代码1:

 public void setCustAccounts(String custId) {

        SQLConnection connect = acctsConnect();
        Command statement = null;
        ResultSet result = null;
        String sql = "SELECT acctNo FROM Accounts Where Cid = '" + custId + "';";

        try{
            statement = connect.createStatement();
            result = statement.executeQuery(sql);


            while (result.next()){
                result.getRow();
                Account acct = new Account(result.getString("acctNo"));
                custAccounts.add(acct);                
            }
        }

        finally {
            connect.close();
        }
    }

代码:-

    public SQLConnection acctsConnect(){
        try{
            Class.forName("C:\\ChattBankMDB.mdb");
        }catch(ClassNotFoundException e){
            Console.WriteLine("Error: " + e);
        }

        SQLConnection connect = null;

        try{
            connect = DriverManager.getConnection("C:\\ChattBankMDB.mdb");
        }catch(SQLException e){
            Console.WriteLine("Error: " + e);
        }

        return connect;
    }
    }
}

数据类型是 SqlConnection - 在 C# 中大小写字母是有意义的 - marc_s
谢谢!我简直不敢相信我没写对... - Hiy
11个回答

114
using System.Data.SqlClient;

除了上述行外,我们还需要检查实际系统程序集引用是否存在。在我的情况下,我有指令但是程序集引用丢失了。

要添加程序集,我们可以执行以下操作:

浏览 SqlClient 的 dll 文件并将其添加进来。

--或者-- 更简单的方法是安装 nuget 包。

右键单击项目 > 管理 Nuget 包 > 搜索并安装 'System.Data.SqlClient'

确保它与项目类型(Core/Standard)兼容;


8
谢谢,这正是我的情况 :) - Lachezar Lalov
2
太好了,我的问题通过安装这个包解决了 :) - WAQAS AJMAL
这个问题在这里得到了解决。毫无疑问,这是最好的答案。 - Zuabros
安装 System.Data.SqlClient 包解决了我的问题。谢谢。 - Nika Nabakhteveli

28

您的代码中缺少using导入语句。

using System.Data.SqlClient;

33
首先,您需要安装 System.Data.SqlClient 包! - MeirDayan
2
@MeirDayan 你救了我,我甚至没有考虑过这个。 - I try so hard but I cry harder

12
  1. 在解决方案面板中右键单击您的项目文件,然后单击“管理 NuGet 包”选项。
  2. 在NuGet 包管理器窗口中,选择浏览选项卡。搜索System.Data.SqlClient并按Enter键。
  3. 选择第一个选项,Microsoft的System.Data.SqlClient,然后单击安装按钮。

等待安装完成即可完成。

视频来源YouTube:SqlConnection could not be found in the namespace | Fixed


7
Community Ans所说,您应该首先在项目中安装NuGet软件包。如果您不这样做,在添加using时,Visual Studio的Intellisense仍将正常工作,但您将无法在代码中使用它的类型。

输入图像描述 输入图像描述


2

可以通过 .NET CLI 添加包引用:

dotnet add package System.Data.SqlClient


1
解决方案是在 NuGet 中安装并使用新的 System.Data.SqlClient 包到您的项目或解决方案中。按照以下步骤安装该包:
1. 在 VS 的解决方案面板中右键单击您的解决方案。 2. 从上下文菜单中选择“管理解决方案的 NuGet 包...”。 3. 在 NuGet 包管理器窗口中,选择“浏览”选项卡。 4. 在搜索框中输入“System.Data.SqlClient”,然后按 Enter 键。 5. 查找 Microsoft 的 System.Data.SqlClient 包,并选择它。 6. 右侧窗口将打开一个小面板,其中列出了您解决方案中的项目列表。只选择要安装 SqlClient 包的项目。 7. 然后点击安装按钮。等待安装完成。NuGet 将安装所选的包及其所有依赖项。 8. 现在返回您的解决方案或项目并重新构建。您将不再收到错误信息。

1
我有同样的问题,但我找到了上面显示的解决方案。
不要使用SQLiteConnection(YourPath),而是使用:
     var db = new SQLite.SQLiteConnection(DataBasePath);
     db.CreateTable<YourTable>();

0
解决方案 解决方案是在NuGet中安装和使用新的System.Data.SqlClient包到您的项目或解决方案中。 按照以下步骤安装该包。
1. 在VS的解决方案面板中,右键单击您的解决方案。 2. 在上下文菜单中,选择“管理解决方案的NuGet包...”。 3. 在NuGet包管理器窗口中,选择“浏览”选项卡。 4. 在搜索框中输入System.Data.SqlClient,然后按Enter键。 5. 查找由Microsoft提供的System.Data.SqlClient包,并选择它。 一个小面板将在窗口的右侧打开,显示您解决方案中的项目列表。只选择要安装SqlClient包的项目。 然后点击安装按钮。等待安装完成。NuGet将安装所选的包及其所有依赖项。
现在返回到您的解决方案或项目并重新构建。您将不再遇到该错误 answer

0
对于我来说,使用VS2022,我有最新的Nuget包和在我的项目中使用的语句。我删除了using语句,然后回到我的代码中的SqlConnection语句,将鼠标悬停在SqlConnection对象上,点击“显示潜在修复”,然后点击“using Microsoft.Data.SqlClient;”就解决了问题。
希望这能帮到你...

0

在所有的SqlConnection、Sql...代码块之前,您必须删除。
安装包后并编写代码。
VS建议使用System.Data.SqlClient...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接