|
I worked, for a application that needs to display a lot of data in DataGridView (1000000 Data) But when I run my application the waiting time is 11 minutes.I would like to reduce the waiting time.
I read on the internet that allows virtual mode to launch the application quickly.
But I have not found a tutorial that allows me to do his.
thank you for Help
|
|
|
|
|
|
yes I have seen this link but it is not well explained
|
|
|
|
|
Ibrahim.elh wrote: yes I have seen this link but it is not well explained I've used them in the past to implement virtual mode. Where did you get stuck? What part requires more instructions?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Do you really need to display a million rows to your users? I would suggest that you'll have more success improving performance if you can come up with an alternative view of your data that's more suited to your users needs. I often hear this type of requirement but when you show the users that amount of data they realise that it's completely unworkable.
|
|
|
|
|
yes I have to show as much data.
|
|
|
|
|
I seriously doubt that.
But, Virtual mode[^] is pretty much your only solution.
|
|
|
|
|
Then I feel pity for your users.
How long do you think it is going to take a user to find the one entry in all those 1,000,000 display items that he is interested it? Long enough to uninstall your app with extreme prejudice if they are anything like me!
Page it, filter it, search it - but don't try to show the user more than a couple of hundred items!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
he needs to register 1000000 lines to statistics.
|
|
|
|
|
Assume your application takes zero time to load and display the 1,000,000 records, and the user is able to "register to statistics" (whatever than means) each line in one second.
If the user avoids eating, drinking, sleeping, and bathroom breaks, it will take them 11 days, 13 hours and 47 minutes to process 1,000,000 lines.
By which time, the data will probably be stale, and they'll have to start again.
Find a better way to display the data. Or, better still, find a way to automate the process so that you don't have to display the data at all.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
|
And as we've tried to explain to you, doing so will make your application completely unusable.
If you want to make an application which nobody will ever use because it's completely unusable, then virtualization is your only hope. Both Eddy and Dave have posted links explaining how that works.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Do you really, or are you making an assumption that you have to show all the data? This is an area where I would challenge the user about the "requirement".
|
|
|
|
|
"We're gonna need a bigger screen..."
|
|
|
|
|
It doesn't matter what he is doing with them: it's far too much data for any human to cope with in a reasonable time.
Think about it: would you want to fine one line of code somewhere in a file containing 1,000,000 similar lines? Or would you want to search for it, filter it, or otherwise find a way to reduce the "rubbish" from the "data"?
If the user isn't going to read it at all - and he can't in the real world - why present it to him?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Shouldn't your app do that for him and then just show the statistical results? Or do you mean he's going to copy your data, paste it into Excel, and perform statistics there? Your app can do that.
|
|
|
|
|
Have you asked the users? Have you shown them what it looks like?
|
|
|
|
|
I would tend to agree with you.
Having worked with datasets in the 300 million row range my experience is that beyond 1,000(and probably fewer) rows the data stops making sense, and becomes useless, in a non-aggregated non-summarised format.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
frndz kindly help me how to select the data from table in sql server 2012 in c# using visual studio 2010 i have connected the database with the form. but its giving me error kindly tell how to reteive data from db.
|
|
|
|
|
What error?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
its telling that object name is invalid and the name he is showing thats the name of the table
|
|
|
|
|
public partial class Form1 : Form
{
SqlConnection sc = new SqlConnection("Data Source=AHASSAN-PC\\SQLSERVER2012;Initial Catalog=Sindh2_LARMIS_UAT_March;Integrated Security=True");
SqlCommand cmd;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//string a = ("Select * from Taluka order by taluka_id ");
try
{
sc.Open();
cmd = new SqlCommand("Select deh_id from Deh",sc);
cmd.ExecuteNonQuery();
MessageBox.Show("selected");
sc.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
|
|
|
|
|
Check your DB:
You need a table called "DEH" and a column within that table called "deh_id" - unless both are present, you won't get anything.
And make sure you are on the right computer / SQL Server instance: if you have a production and a development server (and you should) you may be connecting to the wrong one.
If that doesn't do it, use the debugger to step through your code, and look at exactly which line throws the exception - it may help you to narrow it down a little.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Ive got a List<myClass> instance added to a DataGridView.DataSource. Now I want to filter this. What is the correct way to do so?
modified 18-Mar-15 4:57am.
|
|
|
|
|
You don't - instead, you use a DataView object, and filter that, having set that as the DataSource. Here's my code for my music player list filter:
private DataView dvFiles = new DataView();
List<Track> tracks = GetTracks();
tracks.Sort();
DataTable dt = tracks.ToDataTable();
dvFiles = new DataView(dt);
dgvTracks.DataSource = dvFiles;
private void textBoxFilter_TextChanged(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
AppendFilter(sb, "TrackName", tbTrackFilter.Text, "");
AppendFilter(sb, "Band", tbBandFilter.Text, " AND ");
AppendFilter(sb, "Album", tbAlbumFilter.Text, " AND ");
dvFiles.RowFilter = sb.ToString();
}
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|