GetTableSchema
private static void GetTableSchema( string connstring,string commandText )
{
string TatableName = "test_table_" + DateTime.Now.ToString("mmss");
string outfilepath=@"C:\OUTFILE.TXT";
using (SAConnection connection = new SAConnection(connstring))
{
connection.Open();
SACommand command = connection.CreateCommand();
command.Connection = connection;
DataTable alldatatype= null ;
SADataReader reader = null;
StringBuilder builder = new StringBuilder();
try
{
command.CommandText = commandText;
reader = command.ExecuteReader();
builder.Append(@"create table ");
builder.Append(TatableName);
builder.Append(@"(");
//foreach (DataRow row in alldatatype.Rows)
while (reader.Read())
{
builder.Append(reader["domain_name"].ToString().Replace(@" ", @"_"));
builder.Append(@"_");
builder.Append(reader["domain_id"].ToString());
builder.Append(@" ");
builder.Append(reader["domain_name"].ToString());
builder.Append(@",");
}
builder.Remove(builder.Length - 1, 1);
builder.Append(@")");
}
catch (Exception ex)
{
Console.WriteLine(" Message: {0}", ex.Message);
return;
}
finally
{
connection.Close();
reader.Close();
}
try
{
connection.Open();
command.CommandText = builder.ToString();
command.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(" Message: {0}", ex.Message);
connection.Close();
return;
}
try
{
command.CommandText = @"select * from " + TatableName;
reader = command.ExecuteReader();
alldatatype = reader.GetSchemaTable();
reader.Close();
FileStream stream = new FileStream(outfilepath,FileMode.OpenOrCreate);
StreamWriter write = new StreamWriter(stream);
//foreach(DataRow row in alldatatype.Rows)
//{
// write.Write(@"数据库字段类型: ");
// write.Write(row["ColumnName"].ToString().Substring(0, row["ColumnName"].ToString().LastIndexOf(@"_")).Replace(@"_", @" "));
// write.Write(@" -> ");
// write.Write(@"DataRead获取的ProviderType编号: ");
// write.Write(row["ProviderType"].ToString());
// write.Write(@" -> ");
// write.Write(@"DataRead获取的字段类型 : ");
// write.Write(row["DataType"].ToString());
// write.WriteLine();
//}
write.Write(@"ProviderType ");
write.Write(@".net ");
write.Write(@"数据库 ");
write.WriteLine();
write.Write(@"编号 ");
write.Write(@"字段类型 ");
write.Write(@"字段类型");
write.WriteLine();
write.WriteLine(@"-------------------------------------------------------------------------------");
foreach (DataRow row in alldatatype.Rows)
{
write.Write(row["ProviderType"].ToString());
write.Write(@" ");
write.Write(row["DataType"].ToString());
write.Write(@" ");
write.Write(row["ColumnName"].ToString().Substring(0, row["ColumnName"].ToString().LastIndexOf(@"_")).Replace(@"_", @" "));
write.WriteLine();
}
write.Flush();
write.Close();
stream.Flush();
stream.Close();
Console.WriteLine("输出信息位置:"+ outfilepath);
Console.WriteLine("按任意键退出");
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(" Message: {0}", ex.Message);
connection.Close();
return;
}
finally
{
try
{
command.CommandText = @"delete from " + TatableName;
command.ExecuteNonQuery();
}
catch
{
}
if (connection.State != ConnectionState.Closed)
connection.Close();
}
}
}
{
string TatableName = "test_table_" + DateTime.Now.ToString("mmss");
string outfilepath=@"C:\OUTFILE.TXT";
using (SAConnection connection = new SAConnection(connstring))
{
connection.Open();
SACommand command = connection.CreateCommand();
command.Connection = connection;
DataTable alldatatype= null ;
SADataReader reader = null;
StringBuilder builder = new StringBuilder();
try
{
command.CommandText = commandText;
reader = command.ExecuteReader();
builder.Append(@"create table ");
builder.Append(TatableName);
builder.Append(@"(");
//foreach (DataRow row in alldatatype.Rows)
while (reader.Read())
{
builder.Append(reader["domain_name"].ToString().Replace(@" ", @"_"));
builder.Append(@"_");
builder.Append(reader["domain_id"].ToString());
builder.Append(@" ");
builder.Append(reader["domain_name"].ToString());
builder.Append(@",");
}
builder.Remove(builder.Length - 1, 1);
builder.Append(@")");
}
catch (Exception ex)
{
Console.WriteLine(" Message: {0}", ex.Message);
return;
}
finally
{
connection.Close();
reader.Close();
}
try
{
connection.Open();
command.CommandText = builder.ToString();
command.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(" Message: {0}", ex.Message);
connection.Close();
return;
}
try
{
command.CommandText = @"select * from " + TatableName;
reader = command.ExecuteReader();
alldatatype = reader.GetSchemaTable();
reader.Close();
FileStream stream = new FileStream(outfilepath,FileMode.OpenOrCreate);
StreamWriter write = new StreamWriter(stream);
//foreach(DataRow row in alldatatype.Rows)
//{
// write.Write(@"数据库字段类型: ");
// write.Write(row["ColumnName"].ToString().Substring(0, row["ColumnName"].ToString().LastIndexOf(@"_")).Replace(@"_", @" "));
// write.Write(@" -> ");
// write.Write(@"DataRead获取的ProviderType编号: ");
// write.Write(row["ProviderType"].ToString());
// write.Write(@" -> ");
// write.Write(@"DataRead获取的字段类型 : ");
// write.Write(row["DataType"].ToString());
// write.WriteLine();
//}
write.Write(@"ProviderType ");
write.Write(@".net ");
write.Write(@"数据库 ");
write.WriteLine();
write.Write(@"编号 ");
write.Write(@"字段类型 ");
write.Write(@"字段类型");
write.WriteLine();
write.WriteLine(@"-------------------------------------------------------------------------------");
foreach (DataRow row in alldatatype.Rows)
{
write.Write(row["ProviderType"].ToString());
write.Write(@" ");
write.Write(row["DataType"].ToString());
write.Write(@" ");
write.Write(row["ColumnName"].ToString().Substring(0, row["ColumnName"].ToString().LastIndexOf(@"_")).Replace(@"_", @" "));
write.WriteLine();
}
write.Flush();
write.Close();
stream.Flush();
stream.Close();
Console.WriteLine("输出信息位置:"+ outfilepath);
Console.WriteLine("按任意键退出");
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(" Message: {0}", ex.Message);
connection.Close();
return;
}
finally
{
try
{
command.CommandText = @"delete from " + TatableName;
command.ExecuteNonQuery();
}
catch
{
}
if (connection.State != ConnectionState.Closed)
connection.Close();
}
}
}