PDA

View Full Version : سوال: چگونه ردیف datagridview رو تصادفی یا رندم کنیم؟



dele_ghamgin_2008
دوشنبه 27 دی 1395, 18:28 عصر
سلام. چگونه می شود که ردیف های گرید ویو را رندم کرد؟

dele_ghamgin_2008
سه شنبه 28 دی 1395, 12:20 عصر
سلام. لطفا اگر کسی اطلاعاتی در این زمینه دارم مرا راهنمایی کند که چگونه می توانم دیتا گرید ویو را به صورت سطری رندوم کنم ؟
یعنی سطر 1 اول با سطر دیگری جابجا شوند و به همینطور تا آخر.

BEHZADnr
جمعه 01 بهمن 1395, 06:43 صبح
سلام دوست عزیز
این دستور رو برای Select دیتاگریدویو قرار بده ، با هربار اجرای دستور سطرها به صورت تصادفی انتخاب میشن

به جای tablename نام جدول رو قرار بده
SELECT * FROM tablename ORDER BY NEWID()

بازم مشکلی بود در خدمتم

dele_ghamgin_2008
شنبه 02 بهمن 1395, 14:45 عصر
سلام دوست عزیز
این دستور رو برای Select دیتاگریدویو قرار بده ، با هربار اجرای دستور سطرها به صورت تصادفی انتخاب میشن

به جای tablename نام جدول رو قرار بده
SELECT * FROM tablename ORDER BY NEWID()

بازم مشکلی بود در خدمتم

اصلا متوجه نشدم. اینم عکسش. میخوام وقتی روی باتن کلیک کردم، جدولم رندوم بشه.
144200

BEHZADnr
دوشنبه 04 بهمن 1395, 11:34 صبح
اصلا متوجه نشدم. اینم عکسش. میخوام وقتی روی باتن کلیک کردم، جدولم رندوم بشه.
دوست عزیز این دستور بانک اطلاعاتیه نه سی شارپ
کد مربوطه را در قسمت Select بانک اطلاعاتی قرار بده
اگه خواستی بگو نمونه بزارم

dele_ghamgin_2008
چهارشنبه 06 بهمن 1395, 10:01 صبح
خب من اصلا بانک اطلاعاتی ندارم. این اطلاعات از یک فایل اکسل داره خونده میشه. هیچ بانکی تعریف نشده.
پس از اینکه ریخته شده توی دیتا گرید حالا چیکار کنم که رندوم بشه ؟

BEHZADnr
چهارشنبه 06 بهمن 1395, 13:33 عصر
سلام دوست عزیز
ببخشید دیر جواب میدم درگیر یه پروژم نمیتونم سریع جواب بدم

تنها راهی که داری یه ستون با مقدار تصادفی درست کنی و بر اساس اون نمایش بدی و در زمان اجرا اون ستون رو مخفی کنی
همین الان یه نمونه برات نوشتم از اون استفاده کن

بازم مشکلی بود درخدمتم

dele_ghamgin_2008
پنج شنبه 07 بهمن 1395, 12:16 عصر
سلام. مممون. ولی اجرا نمیشه و خطا میده.
144290

BEHZADnr
پنج شنبه 07 بهمن 1395, 12:55 عصر
سلام
بخاطر نصب نبودن Engine آفیس این خطا رو میده
فایل نصبش رو از مسیر زیر دانلود و نصب کن ، حتما درست میشه
https://www.microsoft.com/en-us/download/details.aspx?id=13255

dele_ghamgin_2008
پنج شنبه 07 بهمن 1395, 15:26 عصر
بازم ارور میده. اینم وقتی برنامه رو اجرا میکنم. و اون باتن رو میزنم.
144293

BEHZADnr
پنج شنبه 07 بهمن 1395, 16:02 عصر
این فایل رو هم دانلود و نصب کن ، اگر نشد بگو تا پروژه رو ویرایش کنم
https://www.microsoft.com/en-us/download/details.aspx?id=23734

dele_ghamgin_2008
یک شنبه 10 بهمن 1395, 19:57 عصر
این فایل رو هم دانلود و نصب کن ، اگر نشد بگو تا پروژه رو ویرایش کنم
https://www.microsoft.com/en-us/download/details.aspx?id=23734

خیلیممنون.درستشد

private void btnRandomBranding_Click(object sender, EventArgs e)
{
string filepath = string.Empty;
string fileExt = string.Empty;
OpenFileDialog file = new OpenFileDialog();//open dialog to choose file
if (file.ShowDialog() == System.Windows.Forms.DialogResult.OK)//if there is a file choosen by the user
{
filepath = file.FileName;//get the path of the file
fileExt = Path.GetExtension(filepath);//get the file extension


OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + @";Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1;TypeGuessRows=0;ImportMixedType s=Text""";
OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", conn);
DataSet ds = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
adapter.Fill(ds);




DataTable data = ds.Tables[0];
data.Columns.Add(new DataColumn("Guid"));
for (int i = 0; i < data.Rows.Count; i++)
{
data.Rows[i].SetField("Guid", Guid.NewGuid());
}
DataView dv = data.DefaultView;
dv.Sort = "Guid desc";


DGW.DataSource = dv.ToTable();
DGW.Columns["Guid"].Visible = false;
}

dele_ghamgin_2008
یک شنبه 10 بهمن 1395, 19:58 عصر
System.Data.DataSetExtensions
البته این رفرنس هم نیاز بود.

Mahmoud.Afrad
یک شنبه 10 بهمن 1395, 21:11 عصر
میتونید در کوئری بر حسب یک مقدار تصادفی مرتب سازی انجام بدید.
SELECT * FROM [Sheet1$] order by rnd(-[ID]*Time())
به جای ID میتونید از کدملی یا ... استفاده کنید. در اینصورت نیازی به ستون Guid نیست.