using Oracle.DataAccess.Client;
using System.Configuration;
using System.Data;
using System;
namespace 优软MES.DataOperate
{
class DataHelper
{
public static readonly string ConnectionStrings = ConfigurationSettings.AppSettings["DatabaseConnection"];
OracleCommand command = null;
OracleConnection connection = new OracleConnection(ConnectionStrings);
public DataHelper() {
connection.Open();
}
///
/// 根据表名获取该表字段数据类型
///
public DataTable getColumnDataType(string TableName) {
DataTable dt = new DataTable();
command = new OracleCommand("select Column_Name,Data_Type from cols where TABLE_name=upper('"+TableName+"')", connection);
OracleDataAdapter ad = new OracleDataAdapter(command);
ad.Fill(dt);
return dt;
}
///
/// 获取第一行第一列的信息
///
public object getFieldDataByCondition(string TableName,string Field,string Condition) {
DataTable dt = new DataTable();
string sql = "select "+Field+" from " +TableName +" where "+Condition;
command = new OracleCommand();
command.CommandText = sql;
OracleDataAdapter ad = new OracleDataAdapter();
ad.SelectCommand = command;
ad.Fill(dt);
return dt.Rows[0][0];
}
///
/// 获取指定表的数量
///
///
public int getRowCount(string TableName) {
DataTable dt = new DataTable();
string sql = "select count(1) from "+TableName;
command = new OracleCommand(sql, connection);
OracleDataAdapter ad = new OracleDataAdapter(command);
ad.Fill(dt);
int count =int.Parse(dt.Rows[0][0].ToString());
return count;
}
///
/// 通过表名和获取单行的记录
///
public DataTable getFieldsDataByCondition(string TableName,string[] Fields,string Condition) {
DataTable dt = new DataTable();
string sql = "select " ;
sql += AddField(Fields);
sql += " from " + TableName + " where " + Condition +"and rownum=1";
Console.Write(sql);
command = new OracleCommand(sql, connection);
OracleDataAdapter ad = new OracleDataAdapter(command);
ad.Fill(dt);
return dt;
}
///
/// 将DataTable导入到指定的表中
///
///
///
public void InsertDataTable(DataTable DataTable ,string TableName) {
for (int i = 0; i < DataTable.Rows.Count; i++) {
for (int j = 0; j < DataTable.Columns.Count; j++) {
}
}
}
///
/// 通过表名,字段获取DataTable类型的分页数据
///
// SELECT * FROM (SELECT RN A.*, ROWNUM FROM (SELECT* FROM datalist) A WHERE ROWNUM <= 50) WHERE RN >= 21
public DataTable getFieldsDatasByPageing(string TableName,string[] Fields,int CurrentPage,int PageSize) {
string sql = "select * from (select ROWNUM RN,A.* from (select ";
DataTable dt = new DataTable();
sql += AddField(Fields);
sql += " from " + TableName +") A where ROWNUM <="+CurrentPage*PageSize+") where RN>"+ (CurrentPage - 1)* PageSize;
command = new OracleCommand(sql, connection);
OracleDataAdapter ad = new OracleDataAdapter(command);
ad.Fill(dt);
return dt;
}
///
/// 通过表名,字段和条件获取DataTable类型的数据
///
public DataTable getFieldsDatasByCondition(string TableName, string[] Fields, string Condition)
{
DataTable dt = new DataTable();
string sql = "select ";
sql += AddField(Fields);
sql += " from " + TableName + "where " + Condition;
command = new OracleCommand(sql, connection);
OracleDataAdapter ad = new OracleDataAdapter(command);
ad.Fill(dt);
return dt;
}
///
/// 通过表名,字段获取DataTable类型的数据
///
public DataTable getFieldsDatas(string TableName, string[] Fields)
{
DataTable dt = new DataTable();
string sql = "select ";
sql += AddField(Fields);
sql += " from " + TableName;
command = new OracleCommand(sql, connection);
OracleDataAdapter ad = new OracleDataAdapter(command);
ad.Fill(dt);
return dt;
}
///
/// 根据指定条件更新Table
///
///
///
///
public void UpDateTableByCondition(string TableName,string UpdateStatement,string Condition) {
}
///
/// 执行SQL的方法获取数据
///
///
///
public DataTable ExecuteSql(string SQL) {
DataTable dt = new DataTable();
command = new OracleCommand(SQL, connection);
OracleDataAdapter ad = new OracleDataAdapter(command);
ad.Fill(dt);
return dt;
}
public string AddField(string[] Fields) {
string sql = " " ;
foreach (string field in Fields)
{
if (!field.Equals(Fields[Fields.Length - 1]))
{
sql += field + ",";
}
else
{
sql += field;
}
}
return sql;
}
}
}