文件首頁
MySQL Connector/NET 開發人員指南
相關文件 下載本手冊
PDF (US Ltr) - 1.3Mb
PDF (A4) - 1.3Mb


5.13.1 建立資料來源

在 Crystal Reports 中建立報表時,有兩個選項可讓您在設計報表時存取 MySQL 資料。

第一個選項是在設計報表時使用 Connector/ODBC 作為 ADO 資料來源。您將能夠瀏覽您的資料庫,並使用拖放來選擇表格和欄位,以建立您的報表。此方法的缺點是,您必須在您的應用程式中執行額外的工作,才能產生與您的報表預期的資料集相符的資料集。

第二個選項是在 VB.NET 中建立資料集,並將其儲存為 XML。然後,可以使用此 XML 檔案來設計報表。當在您的應用程式中顯示報表時,此方法效果很好,但在設計時較不靈活,因為您必須在建立資料集時選擇所有相關的欄。如果您忘記了某個欄,則必須重新建立資料集,才能將該欄新增到報表中。

以下程式碼可用於從查詢建立資料集並將其寫入磁碟

C# 程式碼範例

DataSet myData = new DataSet();
MySql.Data.MySqlClient.MySqlConnection conn;
MySql.Data.MySqlClient.MySqlCommand cmd;
MySql.Data.MySqlClient.MySqlDataAdapter myAdapter;

conn = new MySql.Data.MySqlClient.MySqlConnection();
cmd = new MySql.Data.MySqlClient.MySqlCommand();
myAdapter = new MySql.Data.MySqlClient.MySqlDataAdapter();

conn.ConnectionString = "server=127.0.0.1;uid=root;" +
  "pwd=12345;database=test";

try
{
  cmd.CommandText = "SELECT city.name AS cityName, city.population AS CityPopulation, " +
  "country.name, country.population, country.continent " +
  "FROM country, city ORDER BY country.continent, country.name";
  cmd.Connection = conn;

  myAdapter.SelectCommand = cmd;
  myAdapter.Fill(myData);

  myData.WriteXml(@"C:\dataset.xml", XmlWriteMode.WriteSchema);
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
  MessageBox.Show(ex.Message, "Report could not be created",
  MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Visual Basic 程式碼範例

Dim myData As New DataSet
Dim conn As New MySqlConnection
Dim cmd As New MySqlCommand
Dim myAdapter As New MySqlDataAdapter

conn.ConnectionString = "server=127.0.0.1;" _
    & "uid=root;" _
    & "pwd=12345;" _
    & "database=world"

Try
    conn.Open()
    cmd.CommandText = "SELECT city.name AS cityName, city.population AS CityPopulation, " _
        & "country.name, country.population, country.continent " _
        & "FROM country, city ORDER BY country.continent, country.name"
    cmd.Connection = conn

    myAdapter.SelectCommand = cmd
    myAdapter.Fill(myData)

    myData.WriteXml("C:\dataset.xml", XmlWriteMode.WriteSchema)
Catch ex As Exception
    MessageBox.Show(ex.Message, "Report could not be created", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

產生的 XML 檔案可以用作設計報表時的 ADO.NET XML 資料來源。

如果您選擇使用 Connector/ODBC 設計報表,可以從 dev.mysql.com 下載。