#YashanDB ADO.NET驱动使用介绍
# 连接数据库
通过Yashandb.Data.YashandbClient提供的YasdbConnection类建立数据库连接:
var connection = new YasdbConnection("Data Source=192.168.31.139:1688;User ID=sys;Password=yasdb_123");
connection.Open();
连接串说明
参数 | 描述 |
---|---|
Data Source | 数据库连接描述符。格式如下: host:port * host:服务器域名或IP地址,需配置为单机实例服务器地址或分布式CN服务器地址; * port:数据库服务端口,如1688。 |
User ID | 数据库用户名。 |
Password | 数据库用户密码。 |
示例
using System;
using System.Data;
using System.Data.Common;
using Yashandb.Data.YashandbClient;
namespace Examples
{
public class Program
{
public static void Main(string[] args)
{
var connection = new YasdbConnection("Data Source=192.168.31.139:1688;User ID=sys;Password=yasdb_123");
connection.Open();
// do something...
connection.Dispose();
Console.WriteLine("Done.");
Console.ReadKey();
}
}
}
# 执行SQL
应用程序通过执行SQL语句来操作数据库的数据,调用YasdbConnection的CreateCommand方法创建语句对象。
var command = (YasdbCommand)connection.CreateCommand();
# 执行普通SQL
调用YasdbCommand的ExecuteNonQuery方法执行SQL语句。
command.CommandText = "drop table if exists example_table";
command.ExecuteNonQuery();
command.CommandText = $"create table example_table(a int, b varchar(32))";
command.ExecuteNonQuery();
# 执行绑定参数的SQL
调用YasdbCommand的Parameters.Add方法进行参数绑定。
command.CommandText = "insert into example_table values(?, ?)";
command.Parameters.Add(1);
command.Parameters.Add("test1");
command.ExecuteNonQuery();
command.CommandText = "insert into example_table values(@a, @b)";
command.Parameters.Add("@a", 2);
command.Parameters.Add("@b", "test2");
command.ExecuteNonQuery();
# 获取结果集
调用YasdbCommand的ExecuteReader方法执行SQL语句,将返回YasdbDataReader对象,后续可通过使用 YasdbDataReader.Read方法从查询结果中获取行。
command.CommandText = "select a, b from example_table";
var reader = command.ExecuteReader();
# 在结果集中定位
可通过Yashandb.Data.YashandbClient提供的YasdbDataReader类对获取的结果集进行检索。为了实现最佳性能,该类提供了能够访问其本机数据类型(GetDateTime、GetDouble、GetGuid、GetInt32 等)的列值的方法。
YasdbDataReader对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。执行Read方法,将返回一行数据,并将光标移动到下一行;若Read方法没有获取到一行数据时,将返回false,所以可以在while循环中使用该方法来迭代结果集。
while (reader.Read())
{
Console.WriteLine(reader.GetInt64(0));
Console.WriteLine(reader.GetString(1));
}
reader.Close();
# 关闭Command
command.Dispose();
# 异常情况说明
connect to server timeout 在使用Visual Studio运行应用程序项目时,数据连接描述符输入正确的前提下,如果出现以下情况,可能是由于服务器防火墙处于开启状态。
可通过在服务器端打开对应端口的方式解决。