سلام
چطور می تونم این کار رو انجام بدم؟
سلام
چطور می تونم این کار رو انجام بدم؟
یه دیتا تیبل بساز بر حسب ستونهای دیتا گریدت ستونهای مورد نظرتو بساز
حالا سطر های رو یکی یکی بخون و به دیتاتیبل ات اضافه کن
public static void ConvertGridToTable(ref DataTable dt, ref GridView grd)
{
try
{
if (grd.Rows.Count <= 0) return;
for (int i = 0; i <= grd.Columns.Count - 1; i++)
{
if (grd.Columns[i].GetType().Name.Equals("BoundField"))
{
BoundField bf = (BoundField)grd.Columns[i];
dt.Columns.Add(bf.DataField.ToString());
}
}
for (int i = 0; i <= grd.Rows.Count - 1; i++)
{
dt.Rows.Add();
for (int j = 0; j <= grd.Columns.Count - 1; j++)
{
if (grd.Columns[j].GetType().Name.Equals("BoundField"))
{
BoundField bf = (BoundField)grd.Columns[j];
for (int k = 0; k <= dt.Columns.Count - 1; k++)
{
if (dt.Columns[k].ColumnName.Trim().Equals(bf.DataField.ToString()) )
{
string value = grd.Rows[i].Cells[j].Text.Trim().Contains(" ") ? grd.Rows[i].Cells[j].Text.Trim().Replace(" ", string.Empty) : grd.Rows[i].Cells[j].Text.Trim();
dt.Rows[i][bf.DataField.ToString()] = value;
}
}
}
}
}
}
catch (Exception ex)
{
throw ex;
}
}
BoundField چیه؟
ایراد می گیره؟
یه کد پیدا کردم ولی کار نمی کنه.
لطفاً بگید چطوری باید این کار رو انجام بدم.
با سلام
از لینک زیر(با کمی تغییر):
=====================================
http://www.maslik.com/how-to-convert...e-using-csharp
ببین اونی که می خواهی هست:
====================================
private void button1_Click(object sender, EventArgs e)
{
DataTable dttest = new DataTable();
dttest = DataGridView2DataTable(dataGridView1,"ali",0);
this.dataGridView1.Sort(this.dataGridView1.Columns["ID"], ListSortDirection.Descending);
}
public DataTable DataGridView2DataTable(DataGridView dgv, String tblName, int minRow)
{
DataTable dt = new DataTable(tblName);
// Header columns
foreach (DataGridViewColumn column in dgv.Columns)
{
DataColumn dc = new DataColumn(column.Name.ToString());
dt.Columns.Add(dc);
}
// Data cells
for (int i = 0; i < dgv.Rows.Count - 1; i++)
{
DataGridViewRow row = dgv.Rows[i];
DataRow dr = dt.NewRow();
for (int j = 0; j < dgv.Columns.Count - 1; j++)
{
dr[j] = (row.Cells[j].Value == null) ? "" : row.Cells[j].Value.ToString();
}
dt.Rows.Add(dr);
}
// Related to the bug arround min size when using ExcelLibrary for export
for (int i = dgv.Rows.Count - 1; i < minRow; i++)
{
DataRow dr = dt.NewRow();
for (int j = 0; j < dt.Columns.Count - 1; j++)
{
dr[j] = " ";
}
dt.Rows.Add(dr);
}
return dt;
}
با تشکر
DataTable myTable=dataGrid. datasource as datatable
آهان درسته بعلهههه