|
Following a C# book and working with Visual Studio 2008 Team Suite. The excercise is a contacts app and involves the introduction of a logo. Additionally, Clicking on the logo generates an "About" feature. Double clicking the logo in the excercise leads to the error " editing embeded resources directly is not supported. Do you wish to convert this item to a linked resource in order to edit it?
The inserted code to generate the "About" feature is: MessageBox.Show ("Contact List 1.0. \nWritten by: Maurice Newsome" , "About") ; Visual Studio flashed a notification about an expected
Three pages of the book and images of my efforts are uploaded to: [COLOR="#0000FF"]https://skydrive.live.com/?cid=4ad6aabd72471dbb&sc=documents&id=4AD6AABD72471DBB%216691#cid=4AD6AABD72471DBB&id=4AD6AABD72471DBB%216692&sc=documents [/COLOR]
I seek guidance on how to address the semi-colon placement issue and why the Logo does not yield the expected results
|
|
|
|
|
If what you are saying is that you need help getting the code provided with a book to work, then I would suggest finding their website or forum. Also, please tag your code so it displays as code. Also, don't you have the code about the expected semi colon? What is it?
"I have a theory that the truth is never told during the nine-to-five hours. "
— Hunter S. Thompson
|
|
|
|
|
|
Uh, you need to actually run the program to see the expected behaviour, not click things in the designer which is what your double click message sounds like.
|
|
|
|
|
Hi...I didnt get a proper reply thats why i m posting it again....there is problem in backup of database.Here i m providing the code..
try
{
DateTime Time = DateTime.Now;
int year = Time.Year;
int month = Time.Month;
int day = Time.Day;
int hour = Time.Hour;
int minute = Time.Minute;
int second = Time.Second;
int millisecond = Time.Millisecond;
//Save file to C:\ with the current date as a filename
string path ;
string p = saveFileDialog1.FileName;
path = p + year + "-" + month + "-" + day +
"-" + hour + "-" + minute + "-" + second + "-" + millisecond + ".sql";
StreamWriter file = new StreamWriter(path);
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe";
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
psi.Arguments = string.Format(@"-u{0} -p{1} -h{2} {3}",
"root", "123456", "localhost", "userdb");
psi.UseShellExecute = false;
Process process = Process.Start(psi);
string output;
output = process.StandardOutput.ReadToEnd();
file.WriteLine(output);
process.WaitForExit();
file.Close();
process.Close();
MessageBox.Show("backup is created");
}
catch (IOException ex)
{
if (System.Diagnostics.Debugger.IsAttached())
{
Console.WriteLine(ex.ToString());
}
else
MessageBox.Show("Error , unable to backup!");
}
}
so the problem is when pointer reach to this line-
Process process = Process.Start(psi)
then an existing event is automatically called and i dont think that this event has to do anything with it....the event is this..
private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
// if (tabControl1.TabPages.Count != 1)
{
e.Graphics.DrawString("x", e.Font, Brushes.Black, e.Bounds.Right - 15, e.Bounds.Top + 4);
e.Graphics.DrawString(this.tabControl1.TabPages[e.Index].Text, e.Font, Brushes.Black, e.Bounds.Left + 12, e.Bounds.Top + 4);
e.DrawFocusRectangle();
}
}
so because of this i m unable to create a proper backup file...so plz give some suggestion....
|
|
|
|
|
Your code calls MessageBox.Show , which obscures (part of) (one of) your app's windows; when you close the MessageBox, whatever was obscured needs repainting, that seems like why you are getting such event(s).
Test the hypothesis by writing your messages to a file, or to a ListBox on your Window, rather than using MessageBox. In fact, I recommend to do that anyway, MessageBoxes are pretty annoying, while logging is very useful during development and afterwards.
And please start using <PRE> tags (e.g.use the "code" widget) when showing code; it preserves formatting and improves readability.
|
|
|
|
|
Actually sir the thing is that event will also be called when code exit out of backup....so i think thats not an issue....The main thing is, the line
Process process=Process.Start(psi);
is not executing....and after this line i m getting error.....
|
|
|
|
|
Hi Everyone,
I am facing an issue in appending quotes to the string value that I am holding in a String Builder variable.
The value that I hold in the variable is,
abc@def@ghi@jkl@
I would like to change the @ with "," so that i get the final result as,
"abc","def","ghi","jkl"
I tried the string format, but did not succeed. Any help in this matter is greatly appriciated.
|
|
|
|
|
Replace perhaps?
But why create the string with the @ s rather than the characters you want? Creating the string the way you want shouldn't be a problem. Perhaps you should explain what you want and show the code you have so far.
|
|
|
|
|
try
{
oleDbDa.Fill(ds,"ServerName");
DataTable dt = ds.Tables["ServerName"];
foreach(DataRow dr in dt.Rows)
{
foreach (DataColumn dc in dt.Columns)
strServerName.Append(dr[dc].ToString()).Append("\",\"");
}
Response.Write(strServerName);
}
But here again i need to get rid of of the quotations at the end of the string and need to add it before the string.
The result that is get is,
abc","def","ghi","jkl","
As I had mentioned i'd like to get the result as,
"abc","def","ghi","jkl"
|
|
|
|
|
How about:
foreach(DataRow dr in dt.Rows)
{
foreach (DataColumn dc in dt.Columns)
strServerName.AppendFormat( "\"{0}\"," , dr[dc] );
}
strServerName.Length-- ;
|
|
|
|
|
Thanks PIEBALDconsult for the help. The solution is just perfect, but there is an extra comma at the end of the string,
"abc","def","ghi","jkl",
How could I get rid of the last comma?
|
|
|
|
|
You probably left off the decrement of the Length.
|
|
|
|
|
oops!!! I did miss that one out. After I included the decrement of the length, it is removing all the comma's from the string. I need the comma that is in between the strings but it should not add the comma at the end of the string.
It is just like the SQL statement that we write.
e.g. Select * from table where name like ('abc','def','ghi')
I am trying to send the variable in this format to the stored procedure.
|
|
|
|
|
It should be outside the loop, as in the example I posted.
|
|
|
|
|
|
Thanks, but I just tried this,
strHolderString = strServerName.ToString();
strHolderString = strHolderString.TrimEnd(',');
strFinalList = new StringBuilder(strHolderString);
here the strHolderString is a string variable and I am getting the result that I was looking for.
Thanks once again to everyone.
|
|
|
|
|
Just decrement the Length. Why create two Strings and another StringBuilder?
|
|
|
|
|
What Piebald said; or else what I often do when I do not want the StringBuilder:
string result="";
string sep="";
foreach(string s in strings) {
result+=sep+"\""+s+"\"";
sep=",";
}
|
|
|
|
|
I'd still use String.Format -- I find it easier to read than a bunch of concatenations.
|
|
|
|
|
I'd like to go with PIEBALDconsult on this one, but thanks for the help
|
|
|
|
|
I use it sparingly, string.Format I mean.
|
|
|
|
|
I use it whenever I can -- muaa haa ha ha!
|
|
|
|
|
strHolderString = strServerName.ToString();
strHolderString = strHolderString.TrimEnd(',');
strFinalList = new StringBuilder(strHolderString);
I just tried the above and it works for me. Here the strHolderString is a string variable and I used the TrimEnd function to get rid of the trailing comma. The strFinalList is a StringBuilder variable.
Thanks once again to all
|
|
|
|
|
There's pretty much no reason to avoid StringBuilder, it's in the core Framework and the memory footprint of creating a new object is likely to be less than all the wasted strings you make in a concatenation session.
|
|
|
|