|
Hello,
How can I see the SQL generated by DataAdapter.Update(dataset) - if any.
Here's a bit of context: I have a (typed) table adaptor (generated using Visual C# 2008) that fills a table from a query on a join (i.e. select all rows from a table that have a counterpart in another table). I managed to handle insertions (i.e. insert in the other table). Now for deletion...I set the DeleteCommand. I remove all the rows from the dataset and I call Update(). Nothing happens. Not even an exception. Either there's a problem with my DeleteCommand or it's never called. How can I find out ?
Thanks,
Jean-Louis
|
|
|
|
|
Start the Sql profiler and connect to the server that you want to trace. Alternatively, you could add a trace yourself.
Start here[^]
I are Troll
|
|
|
|
|
I don't have SQL Profiler at the moment, I was wondering if it's possible to do it from within the program, e.g. if there is a logging facility built in datasets.
J-L
|
|
|
|
|
AFAIK not, but you should be able to start a trace using TSQL-commands, without having the Profiler. The statements are listed here[^], with some short explanation.
I are Troll
|
|
|
|
|
DataAdapters can only do very simple things -- e.g. working with only one table, with a primary key -- I don't think they have the smarts to Update joined data.
Experienced developers don't use them.
|
|
|
|
|
> DataAdapters [...] -- I don't think they have the smarts to Update joined data.
That's why I provide an InsertCommand (which works fine) and a DeleteCommand (which isn't called ). I won't need an UpdateCommand because I'm actually managing two listboxes to update an underlying link table.
> Experienced developers don't use them.
I'm not that experienced yet I'm learning and trying to do things the proper .NET way, e.g. use DataSets instead of raw SQL. Also, typed datasets look like a good idea.
What would you recommend ?
J-L
|
|
|
|
|
Jean-Louis Leroy wrote: the proper .NET way, e.g. use DataSets instead of raw SQL.
That's the lazy way; it leads to poor quality and frustrations like you have now.
Jean-Louis Leroy wrote: What would you recommend ?
Just use SQL; it sounds like you know how.
Read this[^].
|
|
|
|
|
Hi
I have a datagird and a searchfunction wich shows only datagridrows contain the searched Keyword.
Now i would like to highlight the Searched Keyword in the datagird, i can get acces to the row or cell contains the keyword and also highlight them(for example like this: http://blogs.microsoft.co.il/blogs/tomershamam/archive/2009/08/27/wpf-datagrid-search-and-highlight.aspx ).
But how can i highlight only the keyword like google or opera-browser etc.?
Thanks very much.
|
|
|
|
|
You'd have to handle the CellPainting event (.NET 3.0 and above only!) and custom paint every cell in the grid that's being displayed. You'd check to see if the cell contains the search words and custom paint the cell if needed, otherwise let the default painting code render the cell.
If you can't custom render the cells, you may want to try just highlighting the individual cells that conatin the search words. This would be done through the CellFormatting event (.NET 2.0 and above).
|
|
|
|
|
Hi Dave and thanks for the Answer.
I dont wanna paint whole the cell but only the keyword. I will handle that with the CollectionInline but i dont know how to seperat the word into normal parts and highlighted part ( keywordpart).
Cheers
|
|
|
|
|
In theory, there's a compule of ways of doing it.
First, you have to split the string on the keyword. Say you have a sentance that has one instance of your keyword in it. You split the sentence at the keyword, drawing the first part of the sentance as normal, drawing the keyword part next, then drawing the remaining part of the sentance. The hardest part of this would be tracking exactly where the drawing coordinates would be as you move from segment to segment.
The second idea would be to draw the entire sentence, then go back and find the position of each keyword, drawing a transparent highlight box over the parts you want. finding those drawing coordinates would be the difficult part.
|
|
|
|
|
yes thats the difficult part, thats why i m posting here in hope someone has an idea, snippet or something how i can resolve the spliting problem.
Cheers
|
|
|
|
|
There are two possibilities:
1.
you use a non-proportional or monospaced font such as Courier New or Consolas; then you can simply count the number of characters, multiply that with an appropriate factor (not an integer!), and use that to calculate your starting and ending positions. The factor depends on font size and more. Either experiment or use #2. (What I do in simple situations is call Graphics.MeasureString once on a string of length 100, then store one hundredth of that as a permanent factor using a float).
2.
you use any font you like; with Graphics.MeasureString() you can obtain the width a string will require when going to be painted using Graphics.DrawString() provided you give corresponding parameters; warning: it could be off by a few pixels due to some internal anomalies.
If it sounds complex, that is because it is.
BTW: there are some good articles that include this subject here at CodeProject, including a recent one; look for things such as "syntax color", "syntax highlight", "TextBox".
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
Like Luc said, this ain't easy at all. I've just scrapped together a test and found it's quite complex.
On top of this, you'll have to create your own version of the DataGridViewTextBoxColumn class to even start using this is a DGV. Great, even more complexity! Have you ever created a custom DataGridViewColumn class? Not easy, nor fun!
You really have to start asking yourself if this little feature is really worth the effort?? Is it cheaper to possibly find a grid control that already has this capability compared to your cost to develop it?? (Cost to develop = estimated time to complete * what you get paid an hour)
Where I work, there are certain people that think internal tools and controls are really cheap to write. Yeah, right... I've got an HTA app (mostly VBScript) that only my team uses. It took me about 3 weeks to write it, costing the company well over $4,000! Again, is it worth the time?
|
|
|
|
|
Hello Everyone
For the DataView.Select Methode i use like this string as a DataColumn.Expression:
string StatSelect = String.Format(ProductName LIKE '%{0}%'", SearchTextBox.Text);
Productname is the Column where to search, but what is if i wanna search for the string in the whole table ( all columns) ?
Thanks in Advance
Jacko
|
|
|
|
|
I would assume that you could simply append them to this using an OR condition.
|
|
|
|
|
there is not another solution? since i dont know always wich datatables user is calling and this is a little bit strange query?
string StatSelect = String.Format(ProductName LIKE '%{0}%'" OR ProductName LIKE '%{0}%'" OR etc....., SearchTextBox.Text);
tought for something like: string StatSelect = String.Format('%' LIKE '%{0}%'", SearchTextBox.Text); ?
|
|
|
|
|
sortexp = "Name LIKE '" + SearchFor + "%'";
dv.RowFilter = sortexp;
|
|
|
|
|
Hello ,
I wanted to use alerts in my WPF application. in C#.net for every control we have AccessibleRole property. Is anything similar present in WPF? I can use any control for 'alerts' (not messagebox ), but grid is preferable.
Regards
|
|
|
|
|
WPF uses the newer type of accessibility that's available on MS Platforms (it's called UIAutomation and it supercedes MS Active Accessibility). Basically, WPF supports automation peers, and the type of the control can be retrieved from AutomationElement.ControlTypeProperty . One warning - this is not a trivial thing to get, so I suggest you read up on it a bit.
|
|
|
|
|
HI,
My Scenario is:
I have two threads in windows application. one performs action on database and second thread collects updated info and displays it on form in parallel (somewhat like progress bar).
on completion of first thread, I close second thread and flow continues further.
My Issue is:
Whenever I close application in between process(by clicking [X] on top right or Alt+f4 etc.), threads and process both should get terminated but actually my application still remains there in Task Mgr process list and threads continue their execution.
Please let me know how to terminate threads and process explicitly. I made RnD on google and applied some of work-around but in vain.
With Thanks & Regards
Amit Sk Sharma
|
|
|
|
|
Amit for .NET wrote: Please let me know how to terminate threads and process explicitly.
Thread.Abort [^]
Although it'd be neater to signal the thread that your app is exiting and have the thread exit normally.
Amit for .NET wrote: I made RnD on google and applied some of work-around but in vain.
Some things can't be patched by copying code; you'll have to reserve some time and dive into the concepts.
I are Troll
|
|
|
|
|
I just took a reference from google, not copied.but yes I think 'm lacking sm whr with concepts so 'm here.
exactly what I m looking for is how to manage the threads and process through code in desktop application when my application terminates unexpectedly.
With Thanks & Regards
Amit Sk Sharma
|
|
|
|
|
The problem will be gone as soon as you've switched to a backgroundworker; those threads get terminated when the proces is terminated. A foreground-thread is rarely used, but if required, you'd signal it and have it save any remaining data and terminate.
I are Troll
|
|
|
|
|
if you set Thread.IsBackground true, the thread will not prevent your app to exit right away when you choose to terminate it.
BTW: ThreadPool threads (and hence also BackgroundWorker threads) always are background threads.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|