PDA

View Full Version : سوال: ریختن تمام محتویات دیتاگریدویو داخل دیتاتیبل



forodo
دوشنبه 25 فروردین 1393, 10:00 صبح
سلام
چطور می تونم این کار رو انجام بدم؟

Boy_nn
دوشنبه 25 فروردین 1393, 10:43 صبح
یه دیتا تیبل بساز بر حسب ستونهای دیتا گریدت ستونهای مورد نظرتو بساز
حالا سطر های رو یکی یکی بخون و به دیتاتیبل ات اضافه کن

Boy_nn
دوشنبه 25 فروردین 1393, 10:49 صبح
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("&nbsp;") ? grd.Rows[i].Cells[j].Text.Trim().Replace("&nbsp;", string.Empty) : grd.Rows[i].Cells[j].Text.Trim();
dt.Rows[i][bf.DataField.ToString()] = value;
}
}
}
}
}
}
catch (Exception ex)
{
throw ex;
}
}

forodo
دوشنبه 25 فروردین 1393, 11:04 صبح
BoundField چیه؟
ایراد می گیره؟

forodo
سه شنبه 26 فروردین 1393, 13:19 عصر
یه کد پیدا کردم ولی کار نمی کنه.
لطفاً بگید چطوری باید این کار رو انجام بدم.

behzadkhan
سه شنبه 26 فروردین 1393, 14:58 عصر
با سلام

از لینک زیر(با کمی تغییر):
=====================================
http://www.maslik.com/how-to-convert-datagridview-to-datatable-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;
}





با تشکر

winner1
سه شنبه 26 فروردین 1393, 15:23 عصر
DataTable myTable=dataGrid. datasource as datatable

forodo
سه شنبه 26 فروردین 1393, 18:29 عصر
DataTable myTable=dataGrid. datasource as datatable
مشکل اینه که دیتاگریدویوم دیتاسورس نداره.

forodo
سه شنبه 26 فروردین 1393, 18:39 عصر
با سلام

از لینک زیر(با کمی تغییر):
=====================================
http://www.maslik.com/how-to-convert-datagridview-to-datatable-using-csharp

با تشکر
یه سطر و ستون کم میاورد که همه جاهایی که منهای 1 داشت رو برداشتم درست شد.

winner1
سه شنبه 26 فروردین 1393, 19:01 عصر
مشکل اینه که دیتاگریدویوم دیتاسورس نداره.

یعنی چی دیتا سورس نداره وقتی دیتا سورس نداره یعنی اطلاعاتیم نداره

forodo
سه شنبه 26 فروردین 1393, 19:26 عصر
یعنی چی دیتا سورس نداره وقتی دیتا سورس نداره یعنی اطلاعاتیم نداره
نمی دونم چرا ولی استپ به استپ که می رم جلو دیتاسورسم ناله.

winner1
سه شنبه 26 فروردین 1393, 21:16 عصر
نمی دونم چرا ولی استپ به استپ که می رم جلو دیتاسورسم ناله.
ِیه جای کار اشتباه میکنی !!! نیاز به این همه کد نیست

forodo
سه شنبه 26 فروردین 1393, 21:22 عصر
ِیه جای کار اشتباه میکنی !!! نیاز به این همه کد نیست
آخه هیچ جا توی کدهام، به دیتاسورس دیتاگریدویو چیزی نمی دم.

winner1
سه شنبه 26 فروردین 1393, 22:01 عصر
آهان درسته بعلهههه