本文整理汇总了C#中Spartacus.FireEvent方法的典型用法代码示例。如果您正苦于以下问题:C# Spartacus.FireEvent方法的具体用法?C# Spartacus.FireEvent怎么用?C# Spartacus.FireEvent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Spartacus
的用法示例。
在下文中一共展示了Spartacus.FireEvent方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Query
/// <summary>
/// Realiza uma consulta no banco de dados, armazenando os dados de retorno em um <see cref="System.Data.DataTable"/>.
/// </summary>
/// <param name='p_sql'>
/// Código SQL a ser consultado no banco de dados.
/// </param>
/// <param name='p_tablename'>
/// Nome virtual da tabela onde deve ser armazenado o resultado, para fins de cache.
/// </param>
/// <param name='p_progress'>Evento de progresso da execução da consulta.</param>
/// <returns>Retorna uma <see cref="System.Data.DataTable"/> com os dados de retorno da consulta.</returns>
public override System.Data.DataTable Query(string p_sql, string p_tablename, Spartacus.Utils.ProgressEventClass p_progress)
{
System.Data.DataTable v_table = null;
System.Data.DataRow v_row;
uint v_counter = 0;
p_progress.FireEvent(v_counter);
if (this.v_con == null)
{
try
{
this.v_con = new MySql.Data.MySqlClient.MySqlConnection(this.v_connectionstring);
this.v_con.Open();
this.v_cmd = new MySql.Data.MySqlClient.MySqlCommand(p_sql, this.v_con);
this.v_reader = this.v_cmd.ExecuteReader();
v_table = new System.Data.DataTable(p_tablename);
for (int i = 0; i < v_reader.FieldCount; i++)
v_table.Columns.Add(this.FixColumnName(this.v_reader.GetName(i)), typeof(string));
while (this.v_reader.Read())
{
v_row = v_table.NewRow();
for (int i = 0; i < this.v_reader.FieldCount; i++)
v_row[i] = this.v_reader[i].ToString();
v_table.Rows.Add(v_row);
v_counter++;
p_progress.FireEvent(v_counter);
}
return v_table;
}
catch (MySql.Data.MySqlClient.MySqlException e)
{
throw new Spartacus.Database.Exception(e);
}
finally
{
if (this.v_reader != null)
{
this.v_reader.Close();
this.v_reader = null;
}
if (this.v_cmd != null)
{
this.v_cmd.Dispose();
this.v_cmd = null;
}
if (this.v_con != null)
{
this.v_con.Close();
this.v_con = null;
}
}
}
else
{
try
{
this.v_cmd.CommandText = p_sql;
this.v_reader = this.v_cmd.ExecuteReader();
v_table = new System.Data.DataTable(p_tablename);
for (int i = 0; i < v_reader.FieldCount; i++)
v_table.Columns.Add(this.FixColumnName(this.v_reader.GetName(i)), typeof(string));
while (this.v_reader.Read())
{
v_row = v_table.NewRow();
for (int i = 0; i < this.v_reader.FieldCount; i++)
v_row[i] = this.v_reader[i].ToString();
v_table.Rows.Add(v_row);
v_counter++;
p_progress.FireEvent(v_counter);
}
return v_table;
}
catch (MySql.Data.MySqlClient.MySqlException e)
{
throw new Spartacus.Database.Exception(e);
}
finally
{
if (this.v_reader != null)
{
//.........这里部分代码省略.........
示例2: TransferFromFile
/// <summary>
/// Transfere dados de um arquivo Excel para o banco de dados atual.
/// Conexão com o banco atual precisa estar aberta.
/// Não pára a execução se der um problema num comando de inserção específico.
/// </summary>
/// <returns>Número de linhas transferidas.</returns>
/// <param name="p_filename">Nome do arquivo de origem.</param>
/// <param name="p_separator">Separador de campos do arquivo CSV.</param>
/// <param name="p_delimitator">Delimitador de campos do arquivo CSV.</param>
/// <param name="p_header">Se deve considerar a primeira linha como cabeçalho ou não.</param>
/// <param name="p_encoding">Codificação para leitura do arquivo CSV.</param>
/// <param name="p_newtable">Nome da nova tabela a ser criada no banco de dados.</param>
/// <param name="p_progress">Evento de progresso.</param>
/// <param name="p_error">Evento de erro.</param>
public override uint TransferFromFile(string p_filename, char p_separator, char p_delimitator, bool p_header, System.Text.Encoding p_encoding, string p_newtable, Spartacus.Utils.ProgressEventClass p_progress, Spartacus.Utils.ErrorEventClass p_error)
{
Spartacus.Database.Command v_cmd;
Spartacus.Utils.Excel v_excel = null;
uint v_transfered = 0;
string v_createtable;
string v_insert;
try
{
v_excel = new Spartacus.Utils.Excel();
v_excel.Import(p_filename, p_separator, p_delimitator, p_header, p_encoding);
v_createtable = "create table " + p_newtable + " (";
for (int k = 0; k < v_excel.v_set.Tables[0].Columns.Count; k++)
{
if (k < v_excel.v_set.Tables[0].Columns.Count-1)
v_createtable += v_excel.v_set.Tables[0].Columns[k].ColumnName.ToLower() + " varchar(4000),";
else
v_createtable += v_excel.v_set.Tables[0].Columns[k].ColumnName.ToLower() + " varchar(4000))";
}
try
{
this.Execute(v_createtable);
}
catch (Spartacus.Database.Exception e)
{
p_error.FireEvent(v_createtable + "\n" + e.v_message);
}
v_cmd = new Spartacus.Database.Command();
v_cmd.v_text = "insert into " + p_newtable + " values (";
for (int k = 0; k < v_excel.v_set.Tables[0].Columns.Count; k++)
{
if (k < v_excel.v_set.Tables[0].Columns.Count-1)
v_cmd.v_text += "#" + v_excel.v_set.Tables[0].Columns[k].ColumnName.ToLower() + "#,";
else
v_cmd.v_text += "#" + v_excel.v_set.Tables[0].Columns[k].ColumnName.ToLower() + "#)";
v_cmd.AddParameter(v_excel.v_set.Tables[0].Columns[k].ColumnName.ToLower(), Spartacus.Database.Type.QUOTEDSTRING);
}
foreach (System.Data.DataRow r in v_excel.v_set.Tables[0].Rows)
{
foreach (System.Data.DataColumn c in v_excel.v_set.Tables[0].Columns)
v_cmd.SetValue(c.ColumnName, r[c].ToString());
v_insert = v_cmd.GetUpdatedText();
try
{
this.Execute(v_insert);
v_transfered++;
p_progress.FireEvent(v_transfered);
}
catch (Spartacus.Database.Exception e)
{
p_error.FireEvent(v_insert + "\n" + e.v_message);
}
}
return v_transfered;
}
catch (Spartacus.Utils.Exception e)
{
throw new Spartacus.Database.Exception(e);
}
catch (Spartacus.Database.Exception e)
{
throw e;
}
finally
{
if (v_excel != null)
{
v_excel.Clear();
v_excel = null;
}
}
}
示例3: Transfer
/// <summary>
/// Transfere dados do banco de dados atual para um banco de dados de destino.
/// Conexão com o banco de destino precisa estar aberta.
/// Não pára a execução se der um problema num comando de inserção específico.
/// </summary>
/// <returns>Número de linhas transferidas.</returns>
/// <param name="p_query">Consulta SQL para buscar os dados no banco atual.</param>
/// <param name="p_insert">Comando de inserção para inserir cada linha no banco de destino.</param>
/// <param name="p_destdatabase">Conexão com o banco de destino.</param>
/// <param name="p_progress">Evento de progresso.</param>
/// <param name="p_error">Evento de erro.</param>
public override uint Transfer(string p_query, Spartacus.Database.Command p_insert, Spartacus.Database.Generic p_destdatabase, Spartacus.Utils.ProgressEventClass p_progress, Spartacus.Utils.ErrorEventClass p_error)
{
uint v_transfered = 0;
string v_insert;
p_progress.FireEvent(v_transfered);
if (this.v_con == null)
{
try
{
this.v_con = new MySql.Data.MySqlClient.MySqlConnection(this.v_connectionstring);
this.v_con.Open();
this.v_cmd = new MySql.Data.MySqlClient.MySqlCommand(p_query, this.v_con);
this.v_reader = this.v_cmd.ExecuteReader();
while (v_reader.Read())
{
for (int i = 0; i < v_reader.FieldCount; i++)
p_insert.SetValue(this.FixColumnName(v_reader.GetName(i)).ToLower(), v_reader[i].ToString());
v_insert = p_insert.GetUpdatedText();
try
{
p_destdatabase.Execute(v_insert);
v_transfered++;
p_progress.FireEvent(v_transfered);
}
catch (Spartacus.Database.Exception e)
{
p_error.FireEvent(v_insert + "\n" + e.v_message);
}
}
return v_transfered;
}
catch (MySql.Data.MySqlClient.MySqlException e)
{
throw new Spartacus.Database.Exception(e);
}
finally
{
if (this.v_reader != null)
{
this.v_reader.Close();
this.v_reader = null;
}
if (this.v_cmd != null)
{
this.v_cmd.Dispose();
this.v_cmd = null;
}
if (this.v_con != null)
{
this.v_con.Close();
this.v_con = null;
}
}
}
else
{
try
{
this.v_cmd.CommandText = p_query;
this.v_reader = this.v_cmd.ExecuteReader();
while (v_reader.Read())
{
for (int i = 0; i < v_reader.FieldCount; i++)
p_insert.SetValue(this.FixColumnName(v_reader.GetName(i)).ToLower(), v_reader[i].ToString());
v_insert = p_insert.GetUpdatedText();
try
{
p_destdatabase.Execute(v_insert);
v_transfered++;
p_progress.FireEvent(v_transfered);
}
catch (Spartacus.Database.Exception e)
{
p_error.FireEvent(v_insert + "\n" + e.v_message);
}
}
return v_transfered;
}
catch (MySql.Data.MySqlClient.MySqlException e)
{
throw new Spartacus.Database.Exception(e);
//.........这里部分代码省略.........
示例4: Query
/// <summary>
/// Realiza uma consulta no banco de dados, armazenando os dados de retorno em um <see cref="System.Data.DataTable"/>.
/// </summary>
/// <param name='p_sql'>
/// Código SQL a ser consultado no banco de dados.
/// </param>
/// <param name='p_tablename'>
/// Nome virtual da tabela onde deve ser armazenado o resultado, para fins de cache.
/// </param>
/// <param name='p_progress'>Evento de progresso da execução da consulta.</param>
/// <returns>Retorna uma <see cref="System.Data.DataTable"/> com os dados de retorno da consulta.</returns>
public override System.Data.DataTable Query(string p_sql, string p_tablename, Spartacus.Utils.ProgressEventClass p_progress)
{
System.Data.DataTable v_table = null;
System.Data.DataRow v_row;
uint v_counter = 0;
p_progress.FireEvent(v_counter);
try
{
this.v_cmd.CommandText = p_sql;
this.v_reader = this.v_cmd.ExecuteReader();
v_table = new System.Data.DataTable(p_tablename);
for (int i = 0; i < v_reader.FieldCount; i++)
v_table.Columns.Add(this.FixColumnName(this.v_reader.GetName(i)), typeof(string));
while (this.v_reader.Read())
{
v_row = v_table.NewRow();
for (int i = 0; i < this.v_reader.FieldCount; i++)
v_row[i] = this.v_reader[i].ToString();
v_table.Rows.Add(v_row);
v_counter++;
p_progress.FireEvent(v_counter);
}
return v_table;
}
catch (Mono.Data.Sqlite.SqliteException e)
{
throw new Spartacus.Database.Exception(e);
}
}