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

我正在尝试用c#连接到Teradata。 我正在使用本网站的示例代码

using System; using System.Collections.Generic; using System.Text; using Teradata.Client.Provider; namespace Teradata.Client.Provider.HelloWorld { class HelloWorld { static void Main(string[] args) { using (TdConnection cn = new TdConnection("Data Source = x;User ID = y;Password = z;")) { 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 , UID , PWD但是,我得到的例外是我的用户ID,帐号或密码不正确 …但我能够轻松地使用SQL Assistant登录。所以,我排除了不正确的用户ID或密码

在这里,我找到了解决问题的可能方案,但我不知道在示例代码中需要更改的内容。

所以,我不知道如何实现该解决方案。

任何人都可以给我一个工作示例代码吗?

根据您发布的链接,将身份validation机制更改为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); } } 

试试这个。 试着看看你是否在字符串’tt’中得到任何东西。 Plz将您的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(); 

试试这个

  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"); } } }