跳到內容

如何使用ADO.NET創建數據庫

學習ADO.NET並創建一個“ Hello World” ADO.NET數據庫應用程序。該ADO.NET教程可用於具有ADO.NET驅動程序的任何產品,包括MySQL,Oracle和 Raima的RDM.

在你開始之前

在開始之前,應確保您了解/掌握一些內容。請看下面的內容:
•在Windows或Linux中啟動命令提示符。
•已安裝.NET Framework 4.5或更高版本並可以使用。
•文本編輯器。
•產品(例如)中包含的ADO.NET數據庫驅動程序 的MySQL, PostgreSQL的 或者 RDM.

ADO.net的數據庫

創建應用程序的步驟

使用Raima的ADO.NET驅動程序和RDM數據庫管理系統可以找到預打包的示例。 演示部分。選擇與您的操作系統匹配的“ Hello World” Windows或Linux軟件包。您可以在完成本教程後選擇其他示例,因為它們通過ADO.NET顯示了越來越複雜的數據庫用法。

將軟件包安裝到新的本地目錄中。作為參考,我們將此目錄稱為“ /HelloWorld_ADO.NET”。可以看到HelloWorldADO.cs的完整源代碼。 這裡.

步驟1打開命令行提示符

轉到安裝樣本文件的目錄。

步驟2查看您的.cs文件

使用您的文本編輯器,查看文件“ HelloWorldADO.NET.java”。或者,使用我們的 在線副本.

步驟3查看您的範例課程

您的類可以包含與包含該類的.cs文件相同的名稱。它應顯示如下:

Namespace HelloWorldApplication {
class HelloWorldADO.NET {

}
}

在此示例中,所有操作均在此類中完成。

步驟4:檢查主要方法

主要方法是程序的入口點。對於此簡單示例,我們僅使用一個.cs文件。因此,該類將包含main方法,如下所示。我們將不接受該程序的任何參數。
static void main() {

}

步驟5創建和初始化您的連接對象

您將在可以訪問其包含的任何方法之前初始化Connection對象。
優良作法是為初始化的每個對象啟動一個新的try塊。完成對象處理後,只需添加一個執行相應close()方法的finally塊,最外面的塊將包含您的catch塊來處理所有可能的Exception。使用完整的代碼將更容易看到這一點。
*注意:對像類型將根據所使用的驅動程序而變化,在這種情況下,將使用RDM ADO.NET驅動程序,因此我們有一個RdmConnection對象。
RdmConnection connection = new RdmConnection("host=localhost;database=hello_worldADO");
try {

}
} catch (Exception exception) {

} finally {
Conn.close();
}

步驟6創建您的Statement對象

新創建的Connection對象連接中有一個名為createCommand()的方法,該方法將返回RdmCommand對象。然後,您將通過與數據庫的連接使用該對象。
RdmCommand command = connection.createCommand();
try {

} finally {
command.close();
}

步驟7執行語句以創建或打開數據庫

使用剛剛創建的RdmCommand對象命令,可以根據要執行的語句類型執行幾種不同的方法。例如,如果您想執行諸如“ OPEN database_name”或“ DELETE * FROM table_name”之類的SQL語句,則可以執行command.executeNonQuery()方法。您可以在下面的代碼片段中看到executeNonQuery()。在此示例中,我們將以編程方式創建數據庫。在此示例中,數據庫是微不足道的,由一個名為hello_table的表組成,其中包含一個名為foo的字符列。該序列將創建一個表(如果尚不存在),或者僅將其打開(如果存在)。
*注意:此數據庫是通過編程方式創建的。有一些工具可以獨立於程序創建數據庫。查看快速 “如何使用SQL創建數據庫” 有關如何執行此操作的教程。

try {
RdmTransaction rdmtrans = connection.BeginTransaction();
command.CommandText = “CREATE TABLE hello_table (f00 char(31))”;
command.executeNonQuery();
rdmtrans.commit(); // now the database physically exists
} catch (Exception exception) {
// we are here if database exists
}

步驟8使用Statement對象插入新行

要將單行插入此數據庫,我們使用ExecuteNonQuery()方法,該方法用於完整(未準備好)的INSERT,UPDATE或DELETE語句。這將隱式啟動一個事務,這將是原子地應用於數據庫的更新工作的一個單元。下面顯示了一個帶有參數綁定的INSERT,但是此時可以添加更多。
command.CommandText = "INSERT INTO hello_table(f00) VALUES(?)";
command.CommandText = insertString;
RdmParameter parameter = new RdmParameter();
parameter.RdmType = RdmType.AnsiString;
parameter.Direction = ParameterDirection.Input;
parameter.Value = "Hello World!";
command.Parameters.Add(parameter);
command.ExecuteNonQuery();

步驟9提交變更

為了在數據庫中完成更改,您必須執行事務提交。在ADO.NET中,這是通過RdmTransaction對像中的方法完成的。我們將使用的方法是RdmTransaction.Commit(),它將最終確定您在事務處理期間所做的任何更改。
rdmtrans.Commit(); //提交所有更改

步驟10創建結果集對象(從數據庫中檢索數據)

在ADO.NET中,當您要從數據庫中檢索數據時,可以使用Command對象和返回結果集對象的execute方法來執行SQL SELECT語句。此方法稱為Command.executeReader()。這意味著它將執行指定的查詢,並在給定的Reader中返回查詢結果。
command.CommandText = "SELECT * FROM hello_table";
RdmDataReader reader = command.ExecuteReader();
try {

} finally {
reader.Close();
}

步驟11訪問結果集

為了訪問結果集中的每個數據,您必須對其進行迭代。結果集中提供了一種方法來檢查結果集中的下一個結果是否為NULL,表示沒有更多數據。如果方法reader.Read()返回TRUE,則數據庫中有數據,您可以從結果集中檢索它。
要訪問結果集中的數據,您必須執行getter方法。有多種獲取方法可用於從結果集中檢索特定的數據類型。在此示例中,我們需要一個字符串,因此我們使用reader.getString()方法,其中參數為您要從中獲取的列(第一列/唯一列為0)。
查看下面的代碼,以查看如何完成此操作的示例。
while(reader.Read() != false)
{
Console.WriteLine(reader.GetString(0));
}

此循環將檢索結果集中的所有行。第一次運行此示例程序時,將只有一行。如果您多次運行它,則每次運行都會發現一行。

步驟12分配資源

在這裡,您將重新分配上面使用的所有資源。在這種情況下,您的資源是您上面使用的每個對象,分別是Connection對象,Statement和Result Set對象。對於每個嵌套的try塊,您將有一個finally塊,該塊執行相應的close方法。這些語句已在上面的上下文中顯示,但是這裡是從代碼開始按順序進行的清理調用。
} finally {
reader.Close ();
}
} finally {
command.Close ();
}
} catch (Exception exception) {
Console.WriteLine (“Exception : ” + exception.ToString ());
} finally {
connection.Close ();
}

步驟13最終接球和最終擋

最後一塊既包含catch塊,又包含finally塊。 catch塊確定如果在上面的代碼中引發異常,該怎麼辦。在這種情況下,僅顯示標準輸出的例外就足夠了。無論是否引發異常,都將執行finally塊。在這裡,我們將取消分配Connection對象。在此示例中,如果您的Connection對象由於某種原因確實引發了異常,則將其“拋出”該方法。在正常情況下,您可以添加另一個try catch塊,或者將該程序聲明為單獨的方法並在其他地方處理。
} catch (Exception exception) {
WriteLine(“Exception : ” + exception.ToString());
} finally {
connection.Close();
}

步驟14編譯您的應用程序

如果您的ADO.NET安裝正確,則您應該可以訪問名為csc的c#。為了進行編譯,必須使用csc編譯器。格式如下:
csc {main_class.cs(指向程序的入口)}
在這種情況下,您將輸入:
csc HelloWorldADO.cs
您應該不會看到任何警告,完成後將生成一個.class文件。您的目錄應包含:
HelloWorldADO.cs
HelloWorldADO.NET.a

步驟15運行程序

運行程序就像輸入“ java {executable name}”一樣簡單。在這種情況下,您將擁有“ HelloWorldADO”,因為這是您程序的入口點。如果一切正常,您應該會在Windows命令提示符中看到類似以下的內容:

完畢!

恭喜你!您剛剛完成了第一個ADO.NET應用程序。現在,您已經有了ADO.NET的“磁盤備份”功能,可以鼓勵您研究一些更複雜的示例。其餘的 ADO.NET演示 成為分步教程,其中包括事務提交和回滾以及表之間的多向關係。完成後,每個樣本都應快速,翔實且完全可拋棄。