حداکثر رکورد ممکن در دیتاگریدویو
با سلام خدمت همه دوستان
تو برنامم یه سری دیتا از پورت سریال میگیرم و به صورت رکورد به دیتاگریدویو اضافه می کنم ولی وقتی تعداد رکورد ها حدودا از 800 بالاتر میره سیستم کلا کند میشه تایمر ها هم کند میشن و برنامه با جون کندن کار میکنه
می خواستم ببینم از دوستان کسی با این تعداد رکورد با دیتاگریدویو کار کرده؟ یعنی مشکل از دیتا گرید هست؟
نقل قول: حداکثر رکورد ممکن در دیتاگریدویو
سلام.بانك اطلاعاتي كه استفاده مي كني چيه؟
چون من شنيدم كه بانك اطلاعاتي اكسس اين مشكل رو داره.اگه بانك اطلاعاتي شما اكسس هست بهتره از SQL استفاده كني.
نقل قول: حداکثر رکورد ممکن در دیتاگریدویو
من از بانک اطلاعاتی استفاده نمی کنم مستقیما میریزم تو دیتاگرید و از همون دیتاگرید هم برای بقیه کارا استفاده میکنم
نقل قول: حداکثر رکورد ممکن در دیتاگریدویو
از حلقه برای ریختن اطلاعات در گرید استفاده می کنید ؟
نقل قول: حداکثر رکورد ممکن در دیتاگریدویو
سلام
http://msdn.microsoft.com/en-us/libr...=vs.95%29.aspx
بارها گفته شده برای انجام کارهای زمان بر یا Long Running باید از کامپوننت BackgroundWorker استفاده کنید:
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
namespace SL_BackgroundWorker_CS
{
public partial class Page : UserControl
{
private BackgroundWorker bw = new BackgroundWorker();
public Page()
{
InitializeComponent();
bw.WorkerReportsProgress = true;
bw.WorkerSupportsCancellation = true;
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerComplet ed);
}
private void buttonStart_Click(object sender, RoutedEventArgs e)
{
if (bw.IsBusy != true)
{
bw.RunWorkerAsync();
}
}
private void buttonCancel_Click(object sender, RoutedEventArgs e)
{
if (bw.WorkerSupportsCancellation == true)
{
bw.CancelAsync();
}
}
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
for (int i = 1; (i <= 10); i++)
{
if ((worker.CancellationPending == true))
{
e.Cancel = true;
break;
}
else
{
// Perform a time consuming operation and report progress.
System.Threading.Thread.Sleep(500);
worker.ReportProgress((i * 10));
}
}
}
private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if ((e.Cancelled == true))
{
this.tbProgress.Text = "Canceled!";
}
else if (!(e.Error == null))
{
this.tbProgress.Text = ("Error: " + e.Error.Message);
}
else
{
this.tbProgress.Text = "Done!";
}
}
private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
this.tbProgress.Text = (e.ProgressPercentage.ToString() + "%");
}
}
}
نقل قول: حداکثر رکورد ممکن در دیتاگریدویو
نقل قول:
نوشته شده توسط
Arash_janusV3
از حلقه برای ریختن اطلاعات در گرید استفاده می کنید ؟
ابتدا تمام اطلاعاتی که از طریق پورت سریال گرفتم رو دریک دیتاتیبل تقسیم بندی می کنم بعد datasorce مربوط به گرید رو برابر دیتاتیبل قرار میدم
هر سری اطلاعاتی که از پورت سریال دریافت می کنم یک رکورد دیتاگرید رو مسازه
SplitInputDate = InputDate.Split(',');
rowCounter++;
dt.Rows.Add(rowCounter, midstrtime, Convert.ToInt32(SplitInputDate[0]), Convert.ToInt32(SplitInputDate[1]), Convert.ToInt32(SplitInputDate[2]), Convert.ToInt32(SplitInputDate[3]), Convert.ToInt32(SplitInputDate[4]), Convert.ToInt32(SplitInputDate[5]), Convert.ToInt32(SplitInputDate[6]), Convert.ToInt32(SplitInputDate[7]), Convert.ToInt32(SplitInputDate[8]), Convert.ToInt32(SplitInputDate[9]), Convert.ToInt32(SplitInputDate[10]), Convert.ToInt32(SplitInputDate[11]), Convert.ToInt32(SplitInputDate[12]), Convert.ToInt32(SplitInputDate[13]), Convert.ToInt32(SplitInputDate[14]), Convert.ToInt32(SplitInputDate[15]));
this.dataGridView1.DataSource = dt;
dataGridView1.Refresh();
countererror = 0;