C# 如何在c中设置.net teradata连接?

C# 如何在c中设置.net teradata连接?,c#,teradata,C#,Teradata,我正在尝试用c连接到Teradata。我正在使用来自的示例代码 我也试过DSN,UID,PWD 然而,我得到一个例外,要么我的用户名,帐户或密码不正确。。。 但是我可以很容易地使用SQL助手登录。所以,我排除了不正确的用户ID或密码 但我不知道我需要在示例代码中更改什么 因此,我不知道如何实施该解决方案 有人能给我一个工作示例代码吗?试试这个 TdConnectionStringBuilder builder=new TdConnectionStringBuil

我正在尝试用c连接到Teradata。我正在使用来自的示例代码

我也试过DSN,UID,PWD 然而,我得到一个例外,要么我的用户名,帐户或密码不正确。。。 但是我可以很容易地使用SQL助手登录。所以,我排除了不正确的用户ID或密码

但我不知道我需要在示例代码中更改什么

因此,我不知道如何实施该解决方案

有人能给我一个工作示例代码吗?

试试这个

                TdConnectionStringBuilder builder=new TdConnectionStringBuilder();
                builder.Add("Data Source", "xxx");
                builder.Add("User ID", "vvv");
                builder.Add("Password", "bbb");
                TdConnection cn = new TdConnection(builder.ConnectionString);
                cn.Open();
复制粘贴这个

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Teradata.Client.Provider;

namespace Teradata.Client.Provider.ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {

            TdConnection cn = new TdConnection();
            TdConnectionStringBuilder conStrBuilder = new TdConnectionStringBuilder();

            conStrBuilder.DataSource = "DSN";
            // conStrBuilder.Database = "optional";

            conStrBuilder.UserId = "user"; conStrBuilder.Password = "pass";
            cn.ConnectionString = conStrBuilder.ConnectionString;

            cn.Open();

            Console.WriteLine("connection successfull");
        }
    }
}

试试这个。尝试查看字符串“tt”中是否有任何内容。请将DBCommand查询更改为任何相关的查询

    public readonly String sUser = "UserName";
    public readonly String sPassword = "Password";
    public readonly String sDataSource = "IP Address"; 
    public readonly String sConnection = "Data Source=" + sDataSource + ";User ID=" + sUser + ";Password=" + sPassword;


        DbProviderFactory pf = DbProviderFactories.GetFactory("Teradata.Client.Provider");
        DbConnection con = pf.CreateConnection();
        con.ConnectionString = sConnection ;       
        DbCommand cmd= new DbCommand("select top 10 * from tdb.access_method");
        DbCommand Db = (DbCommand)cmd;
        Db.Connection = con;
        DataSet ds = new DataSet();
        con.Open();
        string tt = (string)Db.ExecuteScalar();

根据您发布的链接,将身份验证机制更改为LDAP可能会起作用

TdConnectionStringBuilder connectionStringBuilder = new TdConnectionStringBuilder();
connectionStringBuilder.DataSource = "x";
connectionStringBuilder.Database = "DATABASENAME";
connectionStringBuilder.UserId = "y";
connectionStringBuilder.Password = "z";
connectionStringBuilder.AuthenticationMechanism = "LDAP";

using (TdConnection cn = new TdConnection())
{
    cn.ConnectionString = connectionStringBuilder.ConnectionString;
    cn.Open();

    TdCommand cmd = cn.CreateCommand();
    cmd.CommandText = "SELECT DATE";

    using (TdDataReader reader = cmd.ExecuteReader())
    {
        reader.Read();
        DateTime date = reader.GetDate(0);
        Console.WriteLine("Teradata Database DATE is {0}", date);
    }
}

您的用户名和密码可能是正确的。您确定使用了正确的DSN吗?我确定。我已经使用Java成功建立了连接。我使用的DSN是OKData,如果密码中有特殊字符,有时teradata会出现问题。你有吗?我知道。实际上,当我试图使用Java建立连接时,这是一个问题。我的密码很简单。实际上是:testPassCd33,因此没有问题。错误8017用户ID、密码或帐户无效。指示已找到服务器,但登录失败。您应该检查dbc.LogonOff以了解详细信息,使用同一用户登录,并从dbc.LogonOffVX中选择*,其中LogDate=通过LogTime DESC的日期顺序;
TdConnectionStringBuilder connectionStringBuilder = new TdConnectionStringBuilder();
connectionStringBuilder.DataSource = "x";
connectionStringBuilder.Database = "DATABASENAME";
connectionStringBuilder.UserId = "y";
connectionStringBuilder.Password = "z";
connectionStringBuilder.AuthenticationMechanism = "LDAP";

using (TdConnection cn = new TdConnection())
{
    cn.ConnectionString = connectionStringBuilder.ConnectionString;
    cn.Open();

    TdCommand cmd = cn.CreateCommand();
    cmd.CommandText = "SELECT DATE";

    using (TdDataReader reader = cmd.ExecuteReader())
    {
        reader.Read();
        DateTime date = reader.GetDate(0);
        Console.WriteLine("Teradata Database DATE is {0}", date);
    }
}