|
hello all
,i am using the function Dataset.Merge(table, false, MissingSchemaAction.Ignore), to merge larg amount of table ..about 40 tables,the problem appear when some tables have large number of recordes...hence the performance become sooooooo bad,it take about 6...7 m to complete merging for that table to that data set...so does anyone know how to enhance the performance for it ??
or if there is any workaround ??
|
|
|
|
|
So you have taken a dodgy bit of technology (dataset, data processing) designed at best for small volume jobs (2-3 tables and limited rows) and beaten it to death with 40 tables and large volumes of data. I beleive you should move all this processing to a database and reload the data after doing the work in the database.
Secondly I think your design is a disaster looking for a home, anyone loading 40 tables into 1 dataset is asking for trouble. I don't know the design spec for datasets but I have never considered loading more than 3 (small) tables and have NEVER used .merge!
I can feel a rewrite coming your way!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
it is a large system and we have to do that,anyway even in case you just have a one table but it contain alot of records ...the performance will not be acceptable,so have you solution for that ??
but just to enhance its performance but not in the database ??
|
|
|
|
|
Sorry, as far as I'm concerned you are using the wrong tool for the job. This is a design issue NOT a performance issue. If you take a small car and hook up a 5 tonne trailer, you can't complain about the performance, you need a bigger engine and thats the database.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
thanks alot for your replay ,
but the problem i need that before commit it in database,as the data mergerd come from UI and some threads....,so it cannot be handel in Data base...but in case i implement that function ,do you think it may diffrent in performance,??
|
|
|
|
|
Hi
i have seen a desktop application which run via http request on the browser. for example user write a url (problabely location of the application in server) in his/her browser and then press enter, the application run in client machine from network (but app is not installed in client machine, only .net framework has been installed in client machine)
how to do this ?
Thanks
|
|
|
|
|
Have a look at ClickOnce.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
hdv212 wrote: (but app is not installed in client machine, only .net framework has been installed in client machine)
If it runs outside of the browser, then it might have been wrapped as a Remote Application[^]. I believe that VMWare does something similar.
If it runs within the browser, then it's probably an ActiveX control. Those get installed in the browser itself, depending on your security settings.
So, two possible options, but no ready-to-go solutions. If it were easy to do, then everybody would simply run their WinForms-app over the internet
I are troll
|
|
|
|
|
Hi Pete
i don't install or update app via internet, why ClickOnce ?
Hi Eddy
can u give me more explain about this options and solutions ?
|
|
|
|
|
hdv212 wrote: Hi Pete
i don't install or update app via internet, why ClickOnce ?
If you are replying to Pete, then make sure that you reply to his post. We get an email when somebody replies to a post. Pete didn't get your reply by mail this way.
hdv212 wrote: can u give me more explain about this options and solutions ?
For RemoteApp;
This way, the app sits on a server. The client makes a connection, gets to view the app locally, and is running it on the server.
There's a step-by-step guide here[^].
For ActiveX hosting
This way, the app is embedded in the webpage. The client connects, downloads the ActiveX and runs it locally.
The Microsoft Knowledge Base[^]
This is not an easy task and will take quite some effort.
I are troll
|
|
|
|
|
|
Hi. If i try to run my applications on a mapped drive i get a security warning in the top left corner of the applications window. And apllication doesn't work as it gives me an information window : "Application attempted to perform an operation not allowed by the security policy.
...
Request for the permission of type 'System.Security.Permissions.FileIOPPermission, mscorlib, version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
How can i make my applications work in such an envirioment? I've seen normal delphi apps work
Thanks in advance!
Regards,
Matjaž
|
|
|
|
|
It is because of the code access security. Read about Caspol.exe[^]. This[^] blog post can also help.
|
|
|
|
|
Thanks for your answer!
So that means there's no way to get applications running by adding some extra code?
Only localy with administrator account and change some settings?
Regards,
Matjaž
|
|
|
|
|
Matjaž Grahek wrote: So that means there's no way to get applications running by adding some extra code?
I am not sure, but I think there is no other way.
|
|
|
|
|
It wouldn't be providing much security if you could simply bypass it..
I are troll
|
|
|
|
|
|
I have an object, called Tag, which inherits List<Tag>. This works great code wise, I can add objects of type tag to my tag without issue. But when I try to serialize the object to XML it crashes with a "An unhandled exception of type 'System.StackOverflowException' occurred in System.Xml.dll" error when I try to initialize a new instances the XmlSerializer class, and pass in the type of Tag.
If I remove the Inherts List<Tag> and just create a new property of type List<Tag> instead, then this serializes great, but does not give me quite the appearance I want. Is there someway to make this work without custom serialization, or maybe only minor custom serialization?
Thanks,
Peter
|
|
|
|
|
Im having the same issue. Have you found the solution?
|
|
|
|
|
Nope, never did find a work around, ended up doing it a different way, can't remember exactly how right now.
|
|
|
|
|
Hello!
I´ve created an windows service with a timer-object. My application runs a method with a given interval, which builds up strings in memory and when finished with one string sends data to our database. Problem is, my application seems to be running on several threads, which messes up the string-values I hold in memory.
I run this code in the start of the method I´ve set my timerobject to perform:
Log.Write("current threadid : " + System.Threading.Thread.CurrentThread.ManagedThreadId.ToString());
which gives me
current threadid : 4<br />
current threadid : 7<br />
current threadid : 8<br />
current threadid : 4<br />
current threadid : 7<br />
current threadid : 8<br />
current threadid : 4<br />
current threadid : 8<br />
current threadid : 7<br />
current threadid : 8
etc.
Is this how windows services work, and can I manage this behaviour somehow?
|
|
|
|
|
livez wrote: Problem is, my application seems to be running on several threads, which messes up the string-values I hold in memory.
Problem will be with timer. You should not use a timer here. Try to run your method in a thread. You can also read Luc's article Timer surprises, and how to avoid them[^].
|
|
|
|
|
I presume you are using System.Threading.Timer ?
When this fires, it uses a thread from the thread pool to run your TimerCallback method. You can verify this using:
System.Threading.Thread.CurrentThread.IsThreadPoolThread
If your method takes longer to execute than the timer period, then when the timer fires again, it will run your method again ( concurrently ) on a different thread pool thread.
You have to take this into account when writing your TimerCallback method.
Nick
----------------------------------
Be excellent to each other
|
|
|
|
|
Thanks alot guys, u were spot on!
|
|
|
|
|
Hi friends,
I have a file called 'simple.txt' in the C:// drive, but I dont know the exact location in the drive, since there are many directories present. Now, I want to manipulate with the file, i.e., write, read, rename or delete it from the drive. Suppose, I want to delete it with this code: System.IO.File.Delete(@"C:/simple.txt"); or run/open the file with this peice of code: System.Diagnostics.Process.Start(@"C:/simple.txt"); . But this works, only if the file's location is C://simple.txt, not in the case of C://unknowndirectory/simple.txt. Please help me. And also tell me, if its possible to manipulate with a file without assigning its extension.
Your help will be greatly appreciated,
Rajdeep.NET
NOTE: I've posted the same question earlier also, but since I did not find any appropriate result, I had to post it again with better explanation.
|
|
|
|