我一直在追逐这个CS0246错误几个小时,我不知道如何解决它。鉴于这个简单的C#代码:
using System;
// using Microsoft.Data.Odbc;
using System.Data.Odbc;
namespace dotnetdb
{
class Program
{
static private void SelectRows(string[] args)
{
string passWord = "PWD=password";
string uName = "UID=username";
string dbServer = "SERVER=server";
string dbName = "DATABASE=db";
string driver = "DRIVER={ODBC Driver 13 for SQL Server}"
string connString = // assembled from above
string sql = // sql;
OdbcConnection conn = new OdbcConnection(connString);
conn.Open();
OdbcCommand cmd = new OdbcCommand(sql, conn);
// work with cmd
Console.WriteLine("Didnt kick the bucket!");
}
}
}
第2行的Microsoft
节产生CS0234
错误。第3行(来自Microsoft文档)的节给了我CS0246:
Program.cs(20,13): error CS0246: The type or namespace name 'OdbcConnection' could not be found
我一直在go和python中使用这个ODBC连接,但这是我第一次尝试将它与C#一起使用。也是我的第一个C#程序。上面的代码几乎直接从MS文档中删除 - 我错过了什么?如何访问System.Data.Odbc
?
在我学习如何使用C#之前,我是否想要跑步?
请注意,使用dotnet build [console|webapi]
构建的应用程序构建并运行正常。
谢谢!
答案 0 :(得分:0)
您需要将其添加为参考。有关如何在Visual Studio代码中添加引用的信息,请参阅this question。我还注意到你的程序没有Main()
,并且还会阻止它编译。</ p>
改变这个:
static private void SelectRows(string[] args)
到
static void Main(string[] args)
或者像这样从Main()
拨打电话:
static void Main(string[] args)
{
SelectRows(args);
}
private static void SelectRows(String[] args)
{
...
}
一般来说,引用是一段编译代码,大部分都是.DLL
格式,您可以将其包含在自己的项目中,这样就可以使用引用提供的方法/代码。
例如,
假设我有MyMath.dll
由某人创建,我想在其中使用此方法。
int Add(int a, int b) {
return a + b;
}
我必须包含其他人创建的MyMath.dll
才能使用Add()
方法。因此,当我想使用它时,我会使用类似的东西。
using MyMath; // MyMath.dll
static void Main(string[] args)
{
MyMath calculator = new MyMath();
int result = calculator.Add(1, 2);
}
如果您不知道,Visual Studio的free community version也非常强大。