بدست آوردن دیتاتیبل از دیتاگریدویو
کد:
public static DataTable GetDataGridViewDataSource(DataGridView dgv)
{
DataTable dt = new DataTable("dt");
try
{
List<DataGridViewRowInfo> MyColumns = new List<DataGridViewRowInfo>();
foreach (DataGridViewColumn dgvC in dgv.Columns)
{
if (dgvC.Visible != false && dgvC.Name.ToLower() != "grd_id")
{
DataGridViewRowInfo info = new DataGridViewRowInfo(dgvC.Name, dgvC.HeaderText);
MyColumns.Add(info);
}
}
foreach (DataGridViewRowInfo info in MyColumns)
{
DataColumn dc = new DataColumn(info.HeaderText);
dt.Columns.Add(dc);
}
for (int i = 0; i != dgv.Rows.Count; i++)
{
DataRow dr = dt.NewRow();
foreach (DataGridViewRowInfo info in MyColumns)
{
dr[info.HeaderText] = dgv.Rows[i].Cells[info.Name].EditedFormattedValue.ToString();
}
dt.Rows.Add(dr);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return dt;
}
کد:
public class DataGridViewRowInfo
{
string _Name;
string _HeaderText;
public DataGridViewRowInfo()
{
}
public DataGridViewRowInfo(string name, string headerText)
{
_Name = name;
_HeaderText = headerText;
}
public string Name { get { return _Name; } set { _Name = value; } }
public string HeaderText { get { return _HeaderText; } set { _HeaderText = value; } }
public override string ToString()
{
return _HeaderText;
}
}