C# SQLITE 多線程獲取Datatable報錯
public SQLiteConnection conn = new SQLiteConnection();
public SQLiteConnectionStringBuilder connstr = new SQLiteConnectionStringBuilder();
public DbTransaction trans;
public void Initialize(string FileName)
{
connstr.DataSource = FileName;
if (conn.ConnectionString != connstr.ToString())
{
conn.Close();
}
if (conn.State != ConnectionState.Open)
{
conn.ConnectionString = connstr.ToString();
conn.Open();
}
}
public DataTable OpenDataTable(string Sql, string TName)
{
DataTable TT = new DataTable(TName);
try
{
if (TName == "")
{
return TT;
}
SQLiteCommand Com = new SQLiteCommand(Sql);
Com.Connection = conn;
SQLiteDataAdapter Adp = new SQLiteDataAdapter(Com);
TT.RemotingFormat = SerializationFormat.Binary;
TT.CaseSensitive = true;
//Adp.FillSchema(TT, SchemaType.Source);
Adp.Fill(TT);//此處報錯
Com.Dispose();
Adp.Dispose();
}
catch (System.Exception ex)
{
}
return TT;
}
C#採用多線程調用OpenDataTable會報錯
1.Connection was closed, statement was terminated
2.library routine called out of sequence null connection or database handle