1.取出dataConfiguration.config里的数据,查询数据库中表的所有信息(如是否是主健等)
DatabaseSettings databaseSettings = ConfigurationManager.GetConfiguration("dataConfiguration") as DatabaseSettings;
string dataBase = this.generateRule_ddl_Database.SelectedValue;
if(databaseSettings.Instances[dataBase].DatabaseTypeName =="Sql Server")
{
ViewState["AlertRuleOorS"] = "0";
}
else
{
ViewState["AlertRuleOorS"] = "1";
}
string connectString = databaseSettings.Instances[dataBase].ConnectionString;
ConnectionStringData connectionStringData = databaseSettings.ConnectionStrings[connectString];
bool isPrimaryKey = false;
foreach( ParameterData parameter in connectionStringData.Parameters )
{
switch( parameter.Name.ToLower() )
{
case "database":
ViewState["database"] = parameter.Value;
break;
case "integrated security":
ViewState["Security"] = parameter.Value;
break;
case "server":
ViewState["server"] = parameter.Value;
break;
case "user id":
ViewState["userID"] = parameter.Value;
break;
case "password":
ViewState["password"] = parameter.Value;
break;
case "data source":
ViewState["dataSource"] = parameter.Value;
break;
}
}
DataConfiguration config;
if(ViewState["AlertRuleOorS"].ToString() == "0")
{
config = new DataConfiguration(DataBaseType.SqlServer ,ViewState["server"].ToString(),
ViewState["userID"].ToString() ,ViewState["password"].ToString() ,ViewState["database"].ToString() ,null);
}
else
{
config = new DataConfiguration(DataBaseType.Oracle,null,ViewState["userID"].ToString(),
ViewState["password"].ToString() ,null,ViewState["dataSource"].ToString());
}
IADOBase ado = ADOBaseFactory.CreateADOBase(config) ;
string table = "";
if(ViewState["generateRuleWay"] as string == "Script")
{
string[] sql = splitSQL(generateRule_txt_Rule.Text.ToString());
if(sql[1].IndexOf(',')!=-1)
{
LogicException le = new LogicException("MaintainAlert+BAS00057");
JscriptHelper.Alert(le);
}
table = sql[1].Trim();
}
else
{
table = this.generateRule_ddl_Table.SelectedValue.Trim();
}
DataSchema schema = ado.DataSchemaOperator.GetDataSchema(table);
StringBuilder primaryKey = new StringBuilder();
int count = schema.PKeyList.Count;
if(count != 0)
{
for(int n = 0;n<count;n++)
{
isPrimaryKey = true;
primaryKey.Append(schema.PKeyList[n]);
primaryKey.Append(",");
}
primaryKey.Remove(primaryKey.Length-1,1);
Session["primaryKey"] = primaryKey;
}
if(!isPrimaryKey)
{
LogicException le = new LogicException("MaintainAlert+BAS00054");
JscriptHelper.Alert(le);
this.generateRule_btn_PrimaryKey.Visible = true;
this.generateRule_lbl_PrimaryKey.Visible = true;
}
ViewState["check"] = "Y";
string dataBase = this.generateRule_ddl_Database.SelectedValue;
if(databaseSettings.Instances[dataBase].DatabaseTypeName =="Sql Server")
{
ViewState["AlertRuleOorS"] = "0";
}
else
{
ViewState["AlertRuleOorS"] = "1";
}
string connectString = databaseSettings.Instances[dataBase].ConnectionString;
ConnectionStringData connectionStringData = databaseSettings.ConnectionStrings[connectString];
bool isPrimaryKey = false;
foreach( ParameterData parameter in connectionStringData.Parameters )
{
switch( parameter.Name.ToLower() )
{
case "database":
ViewState["database"] = parameter.Value;
break;
case "integrated security":
ViewState["Security"] = parameter.Value;
break;
case "server":
ViewState["server"] = parameter.Value;
break;
case "user id":
ViewState["userID"] = parameter.Value;
break;
case "password":
ViewState["password"] = parameter.Value;
break;
case "data source":
ViewState["dataSource"] = parameter.Value;
break;
}
}
DataConfiguration config;
if(ViewState["AlertRuleOorS"].ToString() == "0")
{
config = new DataConfiguration(DataBaseType.SqlServer ,ViewState["server"].ToString(),
ViewState["userID"].ToString() ,ViewState["password"].ToString() ,ViewState["database"].ToString() ,null);
}
else
{
config = new DataConfiguration(DataBaseType.Oracle,null,ViewState["userID"].ToString(),
ViewState["password"].ToString() ,null,ViewState["dataSource"].ToString());
}
IADOBase ado = ADOBaseFactory.CreateADOBase(config) ;
string table = "";
if(ViewState["generateRuleWay"] as string == "Script")
{
string[] sql = splitSQL(generateRule_txt_Rule.Text.ToString());
if(sql[1].IndexOf(',')!=-1)
{
LogicException le = new LogicException("MaintainAlert+BAS00057");
JscriptHelper.Alert(le);
}
table = sql[1].Trim();
}
else
{
table = this.generateRule_ddl_Table.SelectedValue.Trim();
}
DataSchema schema = ado.DataSchemaOperator.GetDataSchema(table);
StringBuilder primaryKey = new StringBuilder();
int count = schema.PKeyList.Count;
if(count != 0)
{
for(int n = 0;n<count;n++)
{
isPrimaryKey = true;
primaryKey.Append(schema.PKeyList[n]);
primaryKey.Append(",");
}
primaryKey.Remove(primaryKey.Length-1,1);
Session["primaryKey"] = primaryKey;
}
if(!isPrimaryKey)
{
LogicException le = new LogicException("MaintainAlert+BAS00054");
JscriptHelper.Alert(le);
this.generateRule_btn_PrimaryKey.Visible = true;
this.generateRule_lbl_PrimaryKey.Visible = true;
}
ViewState["check"] = "Y";
2.dataConfiguration.config
<dataConfiguration>
<xmlSerializerSection type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data">
<enterpriseLibrary.databaseSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" defaultInstance="OracleDataAccess" xmlns="http://www.microsoft.com/practices/enterpriselibrary/08-31-2004/data">
<databaseTypes>
<databaseType name="Oracle Database" type="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase, Microsoft.Practices.EnterpriseLibrary.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<databaseType name="Sql Server" type="Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase, Microsoft.Practices.EnterpriseLibrary.Data" />
</databaseTypes>
<instances>
<instance name="UserDataBase" type="Sql Server" connectionString="User Database Connection String" />
<instance name="BASDatabase" type="Sql Server" connectionString="BAS Database Connection String" />
<instance name="HMSDataBase" type="Sql Server" connectionString="HMS Connection String" />
<instance name="CBACDataBase" type="Sql Server" connectionString="CBAC Database Connection String" />
<instance name="OracleDataAccess" type="Oracle Database" connectionString="Oracle Database Connection String" />
</instances>
<connectionStrings>
<connectionString name="Oracle Database Connection String">
<parameters>
<parameter name="Data Source" value="ea21sg3t" isSensitive="false" />
<xmlSerializerSection type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data">
<enterpriseLibrary.databaseSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" defaultInstance="OracleDataAccess" xmlns="http://www.microsoft.com/practices/enterpriselibrary/08-31-2004/data">
<databaseTypes>
<databaseType name="Oracle Database" type="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase, Microsoft.Practices.EnterpriseLibrary.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<databaseType name="Sql Server" type="Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase, Microsoft.Practices.EnterpriseLibrary.Data" />
</databaseTypes>
<instances>
<instance name="UserDataBase" type="Sql Server" connectionString="User Database Connection String" />
<instance name="BASDatabase" type="Sql Server" connectionString="BAS Database Connection String" />
<instance name="HMSDataBase" type="Sql Server" connectionString="HMS Connection String" />
<instance name="CBACDataBase" type="Sql Server" connectionString="CBAC Database Connection String" />
<instance name="OracleDataAccess" type="Oracle Database" connectionString="Oracle Database Connection String" />
</instances>
<connectionStrings>
<connectionString name="Oracle Database Connection String">
<parameters>
<parameter name="Data Source" value="ea21sg3t" isSensitive="false" />
<parameter name="user id" value="developer" isSensitive="false" />
<parameter name="password" value="developer" isSensitive="false" />
</parameters>
</connectionString>
<connectionString name="BAS Database Connection String">
<parameters>
<parameter name="database" value="BusinessAlert" isSensitive="false" />
<parameter name="password" value="sa" isSensitive="false" />
<parameter name="server" value="192.168.3.31" isSensitive="false" />
<parameter name="user id" value="sa" isSensitive="false" />
</parameters>
</connectionString>
<connectionString name="HMS Connection String">
<parameters>
<parameter name="database" value="HMS" isSensitive="false" />
<parameter name="Integrated Security" value="false" isSensitive="false" />
<parameter name="password" value="eptal" isSensitive="false" />
<parameter name="server" value="192.168.1.254" isSensitive="false" />
<parameter name="user id" value="sa" isSensitive="false" />
</parameters>
</connectionString>
<connectionString name="User Database Connection String">
<parameters>
<parameter name="database" value="master" isSensitive="false" />
<parameter name="password" value="sa" isSensitive="false" />
<parameter name="server" value="192.168.3.31" isSensitive="false" />
<parameter name="user id" value="sa" isSensitive="false" />
</parameters>
</connectionString>
<connectionString name="CBAC Database Connection String">
<parameters>
<parameter name="database" value="CBAC" isSensitive="false" />
<parameter name="password" value="eptal" isSensitive="false" />
<parameter name="server" value="192.168.1.254" isSensitive="false" />
<parameter name="user id" value="sa" isSensitive="false" />
</parameters>
</connectionString>
</connectionStrings>
<parameter name="password" value="developer" isSensitive="false" />
</parameters>
</connectionString>
<connectionString name="BAS Database Connection String">
<parameters>
<parameter name="database" value="BusinessAlert" isSensitive="false" />
<parameter name="password" value="sa" isSensitive="false" />
<parameter name="server" value="192.168.3.31" isSensitive="false" />
<parameter name="user id" value="sa" isSensitive="false" />
</parameters>
</connectionString>
<connectionString name="HMS Connection String">
<parameters>
<parameter name="database" value="HMS" isSensitive="false" />
<parameter name="Integrated Security" value="false" isSensitive="false" />
<parameter name="password" value="eptal" isSensitive="false" />
<parameter name="server" value="192.168.1.254" isSensitive="false" />
<parameter name="user id" value="sa" isSensitive="false" />
</parameters>
</connectionString>
<connectionString name="User Database Connection String">
<parameters>
<parameter name="database" value="master" isSensitive="false" />
<parameter name="password" value="sa" isSensitive="false" />
<parameter name="server" value="192.168.3.31" isSensitive="false" />
<parameter name="user id" value="sa" isSensitive="false" />
</parameters>
</connectionString>
<connectionString name="CBAC Database Connection String">
<parameters>
<parameter name="database" value="CBAC" isSensitive="false" />
<parameter name="password" value="eptal" isSensitive="false" />
<parameter name="server" value="192.168.1.254" isSensitive="false" />
<parameter name="user id" value="sa" isSensitive="false" />
</parameters>
</connectionString>
</connectionStrings>