Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)

原文链接:https://www.gbase.cn/community/post/4408
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

在上一篇文章中,我们介绍了如何在Windows环境下安装CSDK及连接配置,并执行基本的数据库操作。本文将进一步介绍C#操作数据库的操作及C#代码示例,帮助您更高效地管理和操作数据库。

查看上篇链接:Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)

C#操作数据库

这里我使用的是 Visual Studio 2022 社区版开发工具。

1、创建并配置新项目

打开Visual Studio 2022,创建新项目,选择控制台应用(.NET Framework),点击下一步。

使用.NET Framework 4.8,创建控制台应用程序,指定项目名称为 ConsoleApp1,位置等。

2、添加GBS.Data.GBasedbt.dll引用

在解决方案管理器上的引用中,右键添加引用,浏览并增加 GBS.Data.GBasedbt.dll文件。

示例中的路径为:

C:\Program Files\GBase Client-SDK\bin\netf40\GBS.Data.GBasedbt.dll

3、C#代码示例
using System;  
using GBS.Data.GBasedbt;  
using System.Data;  
  
namespace ConsoleApp1  
{  
    internal class Program  
    {  
        static void Main()  
        {  
            var constr = "database=testdb1;server=yangzai;host=192.168.137.66;service=6666;protocol=onsoctcp;uid=gbasedbt;pwd=111111;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8";  
            var conres = logon(constr);  
              
            if (conres != null)  
            {  
                execute_database(conres);  
                logoff(conres);  
            }            
        }  
  
        static IfxConnection logon(string constr)  
        {  
            var conn = new IfxConnection(constr);  
            try  
            {  
                conn.Open();  
                Console.WriteLine("数据库连接成功!\n");  
                return conn;  
            }  
            catch (Exception ex)  
            {  
                Console.WriteLine("数据库连接失败!" + ex.Message);  
                return null;  
            }  
        }  
  
        static void execute_database(IfxConnection conn)  
        {       
            IfxCommand ifxcmd = conn.CreateCommand();  
            ifxcmd.CommandText = "drop table if exists student";  
            ifxcmd.ExecuteNonQuery();  
  
           ifxcmd.CommandText = "create table student(num int,name varchar(100),class varchar(255))";  
            ifxcmd.ExecuteNonQuery();  
  
           ifxcmd.CommandText = "insert into student values (1001,'小张','计算机科学与技术3班')";  
            ifxcmd.ExecuteNonQuery();  
  
            ifxcmd.CommandText = "insert into student values (1002,'小明','电子信息工程1班')";  
            ifxcmd.ExecuteNonQuery();  
  
            ifxcmd.CommandText = "insert into student values (1003,'小李','土木工程4班')";  
            ifxcmd.ExecuteNonQuery();  
  
    ifxcmd.CommandText = "update student set class = '新闻传播专业2班' where num = 1001";  
            ifxcmd.ExecuteNonQuery();  
  
            ifxcmd.CommandText = "delete student where num = 1003";  
            ifxcmd.ExecuteNonQuery();  
  
            ifxcmd.CommandText = "select dbinfo('version','full') from dual";  
            IfxDataReader dr = ifxcmd.ExecuteReader();  
  
            if (dr.Read())  
            {  
              Console.WriteLine("当前数据库版本号为:" + dr[0] + '\n');  
            }  
  
            IfxDataAdapter ifxadpt = new IfxDataAdapter("select * from student", conn);  
            DataSet ds = new DataSet();  
            ifxadpt.Fill(ds);  
            Console.WriteLine("student表查询结果如下:\n");  
            int i = 0;  
            for (i = 0; i < ds.Tables.Count; i++)  
            {  
                var tb1 = ds.Tables[i];  
                var count = tb1.Rows.Count;  
              
                for (int r = 0; r < tb1.Rows.Count; r++)  
                {  
                    for (int c = 0; c < tb1.Columns.Count; c++)  
                    {  
                        var colname = tb1.Columns[c].ColumnName;  
                        var value = tb1.Rows[r].ItemArray[c];  
                        Console.WriteLine(colname + " " + value);  
                    }  
                    Console.Write("\n");  
                }  
                Console.WriteLine(count + " row(s) retrieved.\n");  
            }  
        }  
          
        static void logoff(IfxConnection conn)  
        {  
            try  
            {  
                conn.Close();  
                Console.WriteLine("数据库连接断开成功!\n");  
            }  
            catch (Exception ex)  
            {  
                Console.WriteLine("数据库连接断开失败:" + ex.Message);  
            }  
        }  
    }  
}  
4、程序运行结果

将上面示例代码复制到Program.cs中,执行Debug测试连接到数据库结果。

通过本系列文章的探讨,您应该对使用C#通过ADO.NET操作GBase 8s数据库有了更全面的理解。掌握这些技巧将使您能够构建更高效、更可靠的数据库应用。感谢您的阅读。

附录

GBase 8s数据库文档:官方文档

ADO.NET编程指南:Microsoft Docs

原文链接:https://www.gbase.cn/community/post/4408
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值