|
Hail to codeproject! i love you!
|
|
|
|
|
|
Hi all~
public void RunSqlTransaction(string myConnString) <br />
{<br />
SqlConnection myConnection = new SqlConnection(myConnString);<br />
myConnection.Open();<br />
<br />
SqlCommand myCommand = myConnection.CreateCommand();<br />
SqlTransaction myTrans;<br />
<br />
myTrans = myConnection.BeginTransaction();<br />
myCommand.Connection = myConnection;<br />
myCommand.Transaction = myTrans;<br />
<br />
try<br />
{<br />
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";<br />
myCommand.ExecuteNonQuery();<br />
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";<br />
myCommand.ExecuteNonQuery();<br />
myTrans.Commit();<br />
Console.WriteLine("Both records are written to database.");<br />
}<br />
catch(Exception e)<br />
{<br />
try<br />
{<br />
myTrans.Rollback();<br />
}<br />
catch (SqlException ex)<br />
{<br />
if (myTrans.Connection != null)<br />
{<br />
Console.WriteLine("An exception of type " + ex.GetType() +<br />
" was encountered while attempting to roll back the transaction.");<br />
}<br />
}<br />
<br />
Console.WriteLine("An exception of type " + e.GetType() +<br />
" was encountered while inserting the data.");<br />
Console.WriteLine("Neither record was written to database.");<br />
}<br />
finally <br />
{<br />
myConnection.Close();<br />
}<br />
} (e.g from msdn)
Is it necessary to call Rollback method inside the "catch"? For example, the second sql statment fail to execute and throw an exception and branch to catch. The Commit method not yet execute and the data not yet insert to the database. So call rollback method is not necessary , isn't it? Thanks
|
|
|
|
|
You're right - as long as the commit hasn't been called without error, the rollback is not needed.
-spif2001
|
|
|
|
|
I am using SqlParamter, but i am so confused why i can't find any places telling how to use SqlParameter selecting a range value, such as "SELECT * FROM xxx WHERE key > 10". All of them are just saying how to select a data where "key" equal to 10, or the SqlParameter are just used only for that purpose?
|
|
|
|
|
|
Hi Guys
My project is to dispaly the image in a usercontrol. and user will be able
to scroll it.
But when the image is too large (say width = 2592,Height=1952) the scrolling
becomes slow.. means repaining become slow.
Am using DrawImage for displaying the imag. and used TranslateTransform for
acheving scrolling..
Used Separate scrolbars instead of setting AutoScroll.
Where the things went to wrong . Pls corrcet me
Regards
Krishnan
If u can Dream... U can do it
|
|
|
|
|
Use DrawImage to draw only the bit you can see, instead of all of it. In theory it shouldn't matter ( I don't think ), but in practice it obviously does, as the size of an image is having an effect in your code.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Thanks for ur reply.
Can u explain it more . u means that there is no solution to this problem ?
but when i opening a large image with internet explorer or paint , i can scroll the image smoothly.
So i strongly belive that there is a solution to this.
Regards
Krishnan
If u can Dream... U can do it
|
|
|
|
|
I am saying that instead of using a transform, you should just draw the bit you want to see. Most DrawImage functions take a rect that defines the part of the bitmap to draw. Use them.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Have you tried using a PictureBox setting it SizeMode to AutoSize and just let the user control handle the scrolling with AutoScroll set to true?
If thats not working you should avoid using TranslateTransform as its a heavy function. If you pass negativ coordinates to your DrawImage function it should also work (as everything which cannot be drawn is simply clipped away). And dont use DrawImage, use DrawImageUnscaled instead (unless you need to scale).
|
|
|
|
|
I have a program that currently reads a text file line by line and compares it against another string. However, my word list is all of a sudden separated by, not line breaks, but spaces. So, how would I instead check each string delimited by the spaces?
In case this helps, it's a word game that checks if a word is, in fact, a word.
|
|
|
|
|
Depends on how long your list is
If its rather short just read the whole line and use Split(' ') to split it into seperated chunks. If its really large you will have to read it char by char, build up a string for each word until you find a space.
|
|
|
|
|
stringFromFile;
char[] delim = new char[1];
delim[0] = ' ';
string[] words = stringFromFile.Split(delim);
foreach(string s in words)
{
//check word
}
hope it helps - sounds strange, that it should replace line breaks with whitespaces
-spif2001
|
|
|
|
|
Thanks. That may help.
This would be even easier: DO you know of any programs that can replace ' ' with line breaks? Word sure can't :/
|
|
|
|
|
You'd have to write it. I don't know of any app that would convert spaces to CRLF's.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
System.IO.StreamReader sr = new System.IO.StreamReader(@"c:\test.txt");<br />
string data = sr.ReadToEnd().Replace(" ", "\r\n");
|
|
|
|
|
ALL PRAISES TO YOU, SEAN MICHAEL MURPHY! That worked _beatifully_. Thank you so much!
|
|
|
|
|
Ok, situation as such...have a collection and it extends collectionbase.
this is how all of my functions go, in their most simple form...all code in (welcoming?) arms of a lock with the intention of making my control threadsafe.
public void Add(string text)
{
lock(List.SyncRoot)
{
List.Add(new SimpleListItem(text));
}
}
When i start adding items to the control with both a thread, and at same time syncheroussly...the control freezes up.
I think at that point its stuck in some kind of race condition because conflicting locks are preventing anything from getting into the collection for infinity and beyond :P
This leads me to my question:
Where do i put lock(List.SyncRoot)? When i comment out that line from my add function the control goes fine...
|
|
|
|
|
You should not alter a control from another thread than it was created in. Read in the MSDN about the Invoke method of the Control class. It delegates calls into the right thread. By doing so you even wont need to synchronize the calls anymore.
|
|
|
|
|
Thx for clearing that up for me.
|
|
|
|
|
I have a program that is run via Task Scheduler as a given user. For sake of argument, we'll call this user "backup".
When my program runs via the Task Scheduler, I have it pop up an input box on a certain event (backup failure) and ask the user (apparently "backup", the user who the task is running as) if he/she would like to retry to the backup.
So lets say the user "bob" is logged on, hell, lets look at the case when bob is logged on as well as when nobody is logged on.
If my task runs and has a problem, the input box is lost due to "backup" not being logged in. Yet it still shows up in my process listing...
So I need a way to have my program (which is running with administrative privileges as they are needed for backup reasons) to log the current user off (or not if nobody is logged on) and log backup on prior to running its backup jobs.
Now I know that this sounds like a hokey thing to do with regards to security. I'm not fond of doing it this way but it is what has been asked of me. To be honest, I plan on implementing a toggle for this functionality.
Thanks...
|
|
|
|
|
Logs the user off?! If an application did that to me unexpectedly, the first thing I'd do is uninstall it, burn the CD's it came on, then mail the molten pile of (*$^##& back to the company that wrote it explaining why.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
haha... no doubt man
again, not my idea, just need to know how to implement it or work around it
any helpful suggestions?
|
|
|
|
|
My thoughts are to simply make this a service and be done with it...
|
|
|
|