-- DAL files--
DataSet ExecuteDataSet(string sql)
{
DataSet ds = null;
SqlConnection conn = null;
try
{
conn = new SqlConnection(this.SourceTable.Database.ConnectionString);
conn.Open();
SqlDataAdapter ada = new SqlDataAdapter(sql, conn);
ds = new DataSet();
ada.Fill(ds);
}
catch
{
}
finally
{
if(null != conn &&  conn.State == ConnectionState.Closed)
{
conn.Close();
}
}
return ds;
}
string GetEmptyStringFromIndex(int index)
{
string rtnEmptyString = string.Empty;
for(int i=0;i<index;i++)
{
rtnEmptyString += "    ";
}
return rtnEmptyString;
}
//是否葉子結點.
bool IsLeaf(string sql)
{
SqlConnection conn = null;
IDataReader reader = null;
bool rntValue = false;
try
{
conn = new SqlConnection(this.SourceTable.Database.ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand(sql,conn);
reader = cmd.ExecuteReader();
rntValue = reader.Read();
}
catch
{
}
finally
{
if(null != reader &&  !reader.IsClosed)
{
reader.Close();
}
if(null != conn &&  conn.State == ConnectionState.Closed)
{
conn.Close();
}
}
return rntValue;
}

解决方案 »

  1.   

    --- Commutil files---
    string GetCSharpVariableType(ColumnSchema column)
    {
    if (column.Name.EndsWith("TypeCode")) return column.Name;

    switch (column.DataType)
    {
    case DbType.AnsiString: return "string";
    case DbType.AnsiStringFixedLength: return "string";
    case DbType.Binary: return "byte[]";
    case DbType.Boolean: return "bool";
    case DbType.Byte: return "byte";
    case DbType.Currency: return "decimal";
    case DbType.Date: return "DateTime";
    case DbType.DateTime: return "DateTime";
    case DbType.Decimal: return "decimal";
    case DbType.Double: return "double";
    case DbType.Guid: return "Guid";
    case DbType.Int16: return "short";
    case DbType.Int32: return "int";
    case DbType.Int64: return "long";
    case DbType.Object: return "object";
    case DbType.SByte: return "sbyte";
    case DbType.Single: return "float";
    case DbType.String: return "string";
    case DbType.StringFixedLength: return "string";
    case DbType.Time: return "TimeSpan";
    case DbType.UInt16: return "ushort";
    case DbType.UInt32: return "uint";
    case DbType.UInt64: return "ulong";
    case DbType.VarNumeric: return "decimal";
    default:
    {
    return "__UNKNOWN__" + column.NativeType;
    }
    }
    }
    string GetFieldValue(ColumnSchema column,string readerObjectStr)
    {
    if (column.Name.EndsWith("TypeCode")) return column.Name;

    switch (column.DataType)
    {
    case DbType.AnsiString: return "Convert.ToString(" + readerObjectStr + ")";
    case DbType.AnsiStringFixedLength: return "Convert.ToString(" + readerObjectStr + ")";
    case DbType.Binary: return "Convert.ToString(" + readerObjectStr + ")";
    case DbType.Boolean: return "Convert.ToBoolean(" + readerObjectStr + ")";
    case DbType.Byte: return "Convert.ToByte(" + readerObjectStr + ")";
    case DbType.Currency: return "Convert.ToDecimal(" + readerObjectStr + ")";
    case DbType.Date: return "Convert.ToDateTime(" + readerObjectStr + ")";
    case DbType.DateTime: return "Convert.ToDateTime(" + readerObjectStr + ")";
    case DbType.Decimal: return "Convert.ToDecimal(" + readerObjectStr + ")";
    case DbType.Double: return "Convert.ToDouble(" + readerObjectStr + ")";
    case DbType.Guid: return "Convert.ToString(" + readerObjectStr + ")";
    case DbType.Int16: return "Convert.ToInt16(" + readerObjectStr + ")";
    case DbType.Int32: return "Convert.ToInt32(" + readerObjectStr + ")";
    case DbType.Int64: return "Convert.ToInt64(" + readerObjectStr + ")";
    case DbType.Object: return "Convert.ToString(" + readerObjectStr + ")";
    case DbType.SByte: return "Convert.ToSByte(" + readerObjectStr + ")";
    case DbType.Single: return "Convert.ToSingle(" + readerObjectStr + ")";
    case DbType.String: return "Convert.ToString(" + readerObjectStr + ")";
    case DbType.StringFixedLength: return "Convert.ToString(" + readerObjectStr + ")";
    case DbType.Time: return "Convert.ToString(" + readerObjectStr + ")";
    case DbType.UInt16: return "Convert.ToUInt16(" + readerObjectStr + ")";
    case DbType.UInt32: return "Convert.ToUInt32(" + readerObjectStr + ")";
    case DbType.UInt64: return "Convert.ToUInt64(" + readerObjectStr + ")";
    case DbType.VarNumeric: return "Convert.ToDecimal(" + readerObjectStr + ")";
    default:
    {
    return "__UNKNOWN__" + column.NativeType;
    }
    }
    }
    string GetPrimaryKeys(TableSchema table)
    {
    string _keys = string.Empty;
    foreach(MemberColumnSchema memberColumnSchema in table.PrimaryKey.MemberColumns)
    {
    _keys += GetCSharpVariableType(memberColumnSchema) + " _" + memberColumnSchema.Name + ",";

    }
    if(string.Empty != _keys)
    {
    _keys = _keys.Substring(0,_keys.Length-1);
    }
    return _keys;
    }
    string GetPrimaryKeysValue(TableSchema table)
    {
    string _keys = string.Empty;
    foreach(MemberColumnSchema memberColumnSchema in table.PrimaryKey.MemberColumns)
    {
    _keys += memberColumnSchema.Name + ",";

    }
    if(string.Empty != _keys)
    {
    _keys = _keys.Substring(0,_keys.Length-1);
    }
    return _keys;
    }
    string GetPrimaryKeysText(TableSchema table)
    {
    string _keys = string.Empty;
    foreach(MemberColumnSchema memberColumnSchema in table.PrimaryKey.MemberColumns)
    {
    _keys += "_" + memberColumnSchema.Name + ",";

    }
    if(string.Empty != _keys)
    {
    _keys = _keys.Substring(0,_keys.Length-1);
    }
    return _keys;
    }
    string GetPrimaryKeysValueAndText(TableSchema table)
    {
    string _keys = string.Empty;
    foreach(MemberColumnSchema memberColumnSchema in table.PrimaryKey.MemberColumns)
    {
    _keys += memberColumnSchema.Name + "='\"+_" + memberColumnSchema.Name + "+\"'" + " AND ";

    }
    if(string.Empty != _keys)
    {
    _keys = _keys.Substring(0,_keys.Length-5);
    }
    return _keys;
    }
    string GetStandardPropertyName(string colName)
    {
    colName = colName.ToLower();
    string _firstChar = colName.Substring(0,1);
    return colName.Replace(_firstChar,_firstChar.ToUpper());

    }