Получение коллекции всех столбцов в datagridview
На форме есть элемент DataGridView, который отображает содержимое таблицы из базы данных MS SQL. Надо отдельно получать список названий всех столбцов, не подключаясь к базе вторично. Можно ли как-то получить их из свойств экземпляра объекта DataGridView?
Ответы (1 шт):
Автор решения: OXYGEN
→ Ссылка
Правильно это делается так:
- Создается класс, который содержит поля из таблицы SQL.
- Делается запрос в базу и данные записываются в класс.
- После этого данные класса передаются в
dataGridView1.DataSource = yourclassList. - В дальнейшем Вы работаете с экземплярами класса.
Вот пример
class smartcar_update_files
{
public string Customer_Id { get; set; }
public string Project_Id { get; set; }
public string File_path { get; set; }
public string File_name { get; set; }
public string File_crc { get; set; }
public string File_size { get; set; }
public string File_version { get; set; }
public string File_type{ get; set; }
public string Package_type { get; set; }
public smartcar_update_files(string customerId, string projectId, string filePath, string fileName, string fileCrc, string fileSize, string fileVersion,string fileType)
{
Customer_Id = customerId;
Project_Id = projectId;
File_path = filePath;
File_name = fileName;
File_crc = fileCrc;
File_size = fileSize;
File_version = fileVersion;
File_type = fileType;
}
public smartcar_update_files()
{
}
вот строковый массив
public List<smartcar_update_files> UpdateFilesDataList = new List<smartcar_update_files>(); // список содержит экземпляры класса
public bool GetData(string projectid)
{
DbMySQL _mySql = new DbMySQL();
Regex checkRegex = new Regex("^[0-9]{1,9}[.][0-9]{1,9}$");
if (checkRegex.IsMatch(projectid))
{
string requestQuery = string.Format("SELECT * FROM smartcar_update_files WHERE project_id ='{0}'", projectid);
var sqlResponse = _mySql.QueryList(requestQuery, 8);
if (sqlResponse.Count > 0)
{
for (int i = 0; i < sqlResponse.Count; i++) // заполняем экземпляр класса ответом из базы
{
smartcar_update_files t = new smartcar_update_files
(
sqlResponse[i][0],
sqlResponse[i][1],
sqlResponse[i][2],
sqlResponse[i][3],
sqlResponse[i][4],
sqlResponse[i][5],
sqlResponse[i][6],
sqlResponse[i][7]
);
UpdateFilesDataList.Add(t); // добавляем экземпляр класса в список после этого Datagridview1.DataSource = UpdateFilesDataList
}
return true;
}
return false;
}
return false;
}
}
}