Я получаю данные из базы данных через это:
public static DataSet read_db(string sql)
{
DataSet ds = new DataSet();
try
{
SQLiteConnection m_dbConnection;
m_dbConnection = new SQLiteConnection("Data Source=movies.db;Version=3;");
m_dbConnection.Open();
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
//reader = command.ExecuteReader();
using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(command))
{
adapter.Fill(ds);
}
m_dbConnection.Close();
return ds;
}
catch (SQLiteException ex)
{
string code = ex.Message.ToString();
MessageBox.Show("Error connection to database: " + code);
return ds;
}
}
Теперь я пытаюсь пройтись по этому набору данных и получить значения из базы данных, используя обычный загрузчик данных из sQLite, но этоне будет работать, потому что он держит соединение открытым, пока я не закончу читать, что означает, что мое приложение открыто.
Так что теперь мне нужно изменить все мои устройства чтения данных на путь с набором данных, это был мой предыдущий способ чтения данных:
SQLiteDataReader reader = database.read_db("select * from proxies");
while (reader.Read())
{
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(proxytable);
row.Cells[0].Value = reader["id"];
row.Cells[1].Value = reader["proxy"];
row.Cells[2].Value = reader["port"];
row.Cells[3].Value = reader["username"];
row.Cells[4].Value = reader["password"];
if (reader["dead"].ToString() == "0")
{
status = "ok";
}
else if(reader["dead"].ToString() == "2")
{
status = "not tested";
}
else
{
status = "ok";
}
row.Cells[5].Value = status;
this.proxytable.Rows.Add(row);
}
Как я могу изменить это для работы с набором данных?Если возможно, с минимальными изменениями, потому что я использовал это много.