1.在Cloudera官网上根据impala的版本下载对应的驱动:
https://www.cloudera.com/downloads/connectors/impala/odbc/2-5-41.html
2.安装ODBC驱动
3.配置ODBC:
注意:根据windows系统的版本,在对应的ODBC应用程序下配置数据库信息
C:\Windows\System32或者C:\Windows\SysWOW64找到对应的ODBC执行文件,进行如下配置:
4. C#程序调用:
(1)ConsoleApplication1,注意:需要引入System.Data.Odbc
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Odbc;
namespace ConsoleApplication1{
public class Program
{
public static void Main(string[] args)
{
String constr = "DSN=MyImpala";
String query = "select * from smes_trans.trans_queue_tri where slot_reel_id='710654562';";
try {
OdbcConnection conn = new OdbcConnection(constr);
conn.Open();
testConnect db = new testConnect();
Console.WriteLine(db.Select(conn, query));
conn.Close();
}
catch (Exception e)
{
Console.Write(e.Message);
}
}
}
}
2. testConnect
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Odbc;
using System.ComponentModel;
namespace ConsoleApplication1{
public class testConnect
{
public String Select(OdbcConnection conn, string selectSql)
{
String result = null;
OdbcCommand cmd = new OdbcCommand(selectSql, conn);
try
{
OdbcDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.Write(reader.GetString(1) + ", ");
Console.WriteLine(reader.GetString(2));
result = reader.GetString(1) + ", " + reader.GetString(2)+ ","+ reader.GetString(3) + ", "+ reader.GetString(4) + ", " +reader.GetString(5) + ", ";
}
}
catch(Exception s)
{
Console.WriteLine(s.Message);
}
return result;
}
异常问题记录:
1.ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
https://blog.csdn.net/grape875499765/article/details/49304559
总结:32位和64的驱动都安装