在数据库管理与操作中,执行SQL语句并查看结果是一项基本需求。Oracle APEX作为一个由Oracle XE提供的Web应用程序,虽然提供了执行SQL语句的功能,但它并没有列出表结构或表数据,这在构造SQL语句时可能会造成不便。例如,如果需要从表中检索特定列,就需要知道这些列的名称。有时,会忘记列名或拼写,因此不得不进入对象浏览器并复制列名。SQL命令界面不列出表或显示表结构,它只允许输入SQL语句。如果语句是SELECT查询,它会显示查询结果。
有时,需要从多个表中获取列名以构造SQL JOIN语句。因此,开发了一个简单的查询应用程序。该应用程序的工作方式如下。登录后,当点击“列出表”按钮时,ListView控件会显示属于登录用户的表。通过从ListView控件中选择表名,可以查看表的结构。通过点击相应的按钮,可以在结构视图和数据视图之间切换。结构视图将显示每列的数据类型。切换到数据视图后,可以看到每列存储的数据。在构造SQL语句时,可以轻松查看表结构或数据。此外,还包含了列出视图的功能。可以看到视图的结构以及视图将生成的数据。
以下是工作程序的一些屏幕截图。图1.1显示了登录表单。此表单要求输入数据源名称、用户ID和密码。
登录后,将看到以下表单(图1.2)。
图1.3和图1.4展示了程序的其他视图。
将数据库连接代码与UI代码分离。orcConnection类包含一个Connect()方法,用于连接数据库。下面列出的代码1.1显示了Connect()方法。
public static string Connect(string strDataSource, string strUserId, string strPassword)
{
string strConResult = "";
string orcConString = "Data Source=" + strDataSource + ";User Id=" + strUserId + ";Password=" + strPassword + ";";
OracleConnection orcCon = new OracleConnection(orcConString);
try
{
orcCon.Open();
}
catch (OracleException orcEx)
{
strConResult = "An error occurred: " + orcEx.Message;
}
return strConResult;
}
Connect()方法接受三个参数:数据源、用户ID和密码,它们都是string类型。使用了try/catch块来捕获任何错误。如果产生任何错误,错误消息将返回到调用方法,并在消息框中显示。