C#

时间:2018-04-19 19:45:38

标签: c# odbc

我一直在追逐这个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]构建的应用程序构建并运行正常。

谢谢!

1 个答案:

答案 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也非常强大。