Luk*_*uke 1 .net c# uniobjects
我一直在玩 UniObjects .NET。
我希望能够运行 SELECT 查询并将数据放入可以运行数据的表单中。
我目前正在使用
// UniCommans is a new instance of the CreateUniCommand() method
UniCommand cmd = us1.CreateUniCommand();
string UVDatabaseName = "SLCUST";
// Command is the query that will be sent to the server to be rum
cmd.Command = "SELECT " + UVDatabaseName + " USING DICT " + UVDatabaseName + " WITH CUSREF PRICECODE";
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将数据放入它们提供的数据类型对象之一:
单选列表
// OpenSession is used to open a new session to the database
us1 = UniObjects.OpenSession("92.0.0.1", "username", "password", "/path/TOFILE", "uvcs");
// Create new instance a UniCommand
UniCommand cmd = us1.CreateUniCommand();
string UVDatabaseName = "SLCUST";
// Command is the query that will be sent to the server to be run
cmd.Command = "SELECT " + UVDatabaseName + " USING DICT " + UVDatabaseName + " WITH CUSREF PRICECODE";
// Buffer size for receiving data can be get/set using CommandBlockSize
// 0 is unlimited, the full data set will be received
cmd.CommandBlockSize = 0;
// Execute() executes the Command on the server
cmd.Execute();
// A status response is returned as a string in Response
string response_str = cmd.Response;
Console.WriteLine(response_str);
// Check for the response of the UniCommand
// UVS_COMPLETE = The command was completed, or unsuccessful
if (cmd.CommandStatus == UniObjectsTokens.UVS_COMPLETE)
{
// How do I loop through the data set from my query?
}
Run Code Online (Sandbox Code Playgroud)我发现我可以使用以下代码遍历整个表:
// Create a Uni file, required for you can use a database file
UniFile custfile = us1.CreateUniFile("SLCUST");
// Create a select list from the ID returned from cmd.Response;
UniSelectList selectList = us1.CreateUniSelectList(0);
selectList.Select(custfile);
bool lLastRecord = selectList.LastRecordRead;
while (!lLastRecord)
{
string s = selectList.Next();
Console.WriteLine("Record ID:" + s);
lLastRecord = selectList.LastRecordRead;
}
Run Code Online (Sandbox Code Playgroud)
当我运行命令时,我得到以下响应字符串
4665 条记录选择到 SELECT 列表 #0
这只是如何访问列表“0”,我已经尝试过,但它是如何将它按摩到正确的类类型中:
UniSelectList selectList = us1.CreateUniSelectList(0);
Run Code Online (Sandbox Code Playgroud)
小智 5
你越来越近了。默认情况下,“SELECT”命令将生成一个键列表到选择列表 0 中。所以你只需要为它分配一个 UniSelectList 对象。您实际上并不想查看命令响应,除非您想检查命令是否生成错误:
// OpenSession is used to open a new session to the database
us1 = UniObjects.OpenSession("92.0.0.1", "username", "password", "/path/TOFILE", "uvcs");
// Create new instance a UniCommand
UniCommand cmd = us1.CreateUniCommand();
string UVDatabaseName = "SLCUST";
// Command is the query that will be sent to the server to be run
cmd.Command = "SELECT " + UVDatabaseName + " USING DICT " + UVDatabaseName + " WITH CUSREF PRICECODE";
UniSelectList uSelect = uSession.selectList (0);
// Execute() executes the Command on the server
cmd.Execute();
while (!lLastRecord)
{
string s = uSelect.Next();
Console.WriteLine("Record ID:" + s);
lLastRecord = selectList.LastRecordRead;
}
Run Code Online (Sandbox Code Playgroud)