第三种生成图表的方法:图表数据源来自数据库
最后我们介绍如何读取来自数据库中的数据源,作为我们图表的数据集合。Fusion Charts支持SQL SERVER 及ACCESS等多种数据库,下面我们以读取ACCESS中的数据库为例子说明:
1) 首先,在ACCESS中建立一个数据库,一张数据表,及输入若干数据。
2) 将ACCESS数据文件复制到App_Data目录下。
3) 在App_Code目录下,编写如下代码,进行数据库的连接:
using System;
using System.Data;
using System.Data.Odbc;
using System.Web;
using System.Configuration;
namespace DataConnection
{
public class DbConn
{
public OdbcConnection connection;
public OdbcDataReader ReadData;
public OdbcCommand aCommand;
public DbConn(string strQuery)
{
string connectionName = "MSAccessConnection";
string ConnectionString =
ConfigurationManager.ConnectionStrings[connectionName].ConnectionString;
try
{
connection = new OdbcConnection();
connection.ConnectionString = ConnectionString;
connection.Open();
GetReader(strQuery);
}
catch (Exception e)
{
HttpContext.Current.Response.Write(e.Message.ToString());
}
}
public void GetReader(string strQuery)
{
aCommand = new OdbcCommand(strQuery, connection);
ReadData = aCommand.ExecuteReader(CommandBehavior.CloseConnection);
}
}
}
using System.Data;
using System.Data.Odbc;
using System.Web;
using System.Configuration;
namespace DataConnection
{
public class DbConn
{
public OdbcConnection connection;
public OdbcDataReader ReadData;
public OdbcCommand aCommand;
public DbConn(string strQuery)
{
string connectionName = "MSAccessConnection";
string ConnectionString =
ConfigurationManager.ConnectionStrings[connectionName].ConnectionString;
try
{
connection = new OdbcConnection();
connection.ConnectionString = ConnectionString;
connection.Open();
GetReader(strQuery);
}
catch (Exception e)
{
HttpContext.Current.Response.Write(e.Message.ToString());
}
}
public void GetReader(string strQuery)
{
aCommand = new OdbcCommand(strQuery, connection);
ReadData = aCommand.ExecuteReader(CommandBehavior.CloseConnection);
}
}
}
在上面的代码中,我们使用了ODBC去读取Access数据库,其中的GetReader方法接收一个查询SQL语句,使用ExecuteReader方法去读取并执行获得查询结果集。如果使用的是sql server 2008,则修改为:
string connectionName = "SQLServerConnection";
4) 同样,将FusionCharts.dll放到项目工程目录的bin文件夹下,将FusionCharts解压后的FusionCharts文件夹放到工程目录下。
接下来,要配置configuration文件,代码如下:
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings>
<add name="MSAccessConnection" providerName="System.Data.Odbc"
connectionString="Driver={Microsoft Access Driver (*.mdb,
*.accdb)};Dbq=|DataDirectory|\ipl.accdb"/>
</connectionStrings>
<system.web>
<compilation debug="true">
</compilation>
<authentication mode="Windows"/>
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
</system.web>
</configuration>
<configuration>
<appSettings/>
<connectionStrings>
<add name="MSAccessConnection" providerName="System.Data.Odbc"
connectionString="Driver={Microsoft Access Driver (*.mdb,
*.accdb)};Dbq=|DataDirectory|\ipl.accdb"/>
</connectionStrings>
<system.web>
<compilation debug="true">
</compilation>
<authentication mode="Windows"/>
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
</system.web>
</configuration>