随笔 - 368, 文章 - 0, 评论 - 56, 阅读 - 94万
  博客园  :: 首页  :: 联系 :: 管理

Hive(四):c#通过odbc访问hive

Posted on   天戈朱  阅读(5843)  评论(0编辑  收藏  举报

      hive odbc 驱动配置成功后,通过c#访问就变得比较简单了,分为查询与更新操作,直接附上测试代码。在此过程中需要注意c#工程编译的目标平台

  • 读写访问代码示例:
    复制代码
    public class HiveOdbcClient
        {
            /// <summary>
            /// 
            /// </summary>
            public static HiveOdbcClient Current
            {
                get { return new HiveOdbcClient(); }
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="context"></param>
            public void ExcuteNoQuery(string dns, string sql)
            {
                OdbcConnection conn = null;
    
                try
                {
                    conn = new OdbcConnection(dns);
                    conn.Open();
                    OdbcCommand cmd = new OdbcCommand(sql, conn);
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    if (null != conn)
                    {
                        conn.Close();
                    }
                }
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="context"></param>
            /// <returns></returns>
            public DataSet Query(string dns, string sql,string tblName = "tbl")
            {
                DataSet set = new DataSet();
                OdbcConnection conn = null;
    
                try
                {
                    conn = new OdbcConnection(dns);
                    conn.Open();
                    OdbcCommand cmd = conn.CreateCommand();
                    cmd.CommandText = sql;
                    OdbcDataAdapter adapter = new OdbcDataAdapter(cmd);
                    adapter.Fill(set, tblName);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    if (null != conn)
                    {
                        conn.Close();
                    }
                }
    
                return set;
            }
        }
    View Code
    复制代码
  • 测试:新建一个控制台工程,测试表创建及数据插入,示例代码如下:
    复制代码
    class Program
        {
    
            static void Main(string[] args)
            {
                Console.WriteLine("按任意键开始进行建表及数据插入测试");
                Console.ReadKey();
    
                string dns = "DSN=myhive;UID=hive;PWD=";
    
                string sql = "create table Employee(ID string,Code string,Name string)";
                HiveOdbcClient.Current.ExcuteNoQuery(dns,sql);
    
                sql = "insert into table Employee values('002','002','zhangShan');";
                HiveOdbcClient.Current.ExcuteNoQuery(dns, sql);
    
                Console.WriteLine("数据插入完成,按任意键退出");
                Console.ReadKey();
            }
            
        }
    复制代码
  • 使用上一章介绍的SQurriel 工具,执行: Select * from employee  ,显示代码中插入的数据则OK

 

编辑推荐:
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
阅读排行:
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 全程使用 AI 从 0 到 1 写了个小工具
· 快收藏!一个技巧从此不再搞混缓存穿透和缓存击穿
· AI 插件第二弹,更强更好用
· Blazor Hybrid适配到HarmonyOS系统
点击右上角即可分享
微信分享提示