|
It seems that the issue is because the .net framework can't get the permission to run sql store procedure locally. What I can saw is the connection string can get the server and uid but the pwd is cut. Actually, I did nothing to cut it in the program. Really strange, isn't it?
|
|
|
|
|
In my application I have say, twenty tabs, that I either want to show or hide based on the value provided in a ComboBox.
Call them ATab1 Atab2...ATab20. Is it possible for me to create some looping thing so that I can go through a loop based
based on the number provided in the Combo box (also 1 to 20) ?
mamaflynny
|
|
|
|
|
...hmmm.. not sure, but
...why not have an Array of tabs (indexed 0 through 19)
and loop by that?
I implemented this solution for a series of Image boxes,
so I'm not sure if it would work nicely for tabs...
HTH,
F.O.R.
|
|
|
|
|
Hi, having some problem parsing XML. How do I print the name of an XML attribute?
<sometag attriba="AAA" attribb="BBB">
SomeText
if(reader.NodeType==XmlNodeType.Element)
{
Console.Write("Element: {0}", tr.Name);
for(int i=0; i
|
|
|
|
|
Norm,
I've been able to pull the names of elements and attributes from an xml file using xpath. The code below will help you do it. Don't forget to add: using System.Xml.XPath;
XmlTextReader xtr = new XmlTextReader( m_sXmlFilePreferences );
while( xtr.Read() )
{
switch( xtr.NodeType )
{
case XmlNodeType.Attribute:
break;
case XmlNodeType.Element:
if( xtr.HasAttributes )
{
if( xtr.Name == "Preferences" )
{
for( int i = 0; i < xtr.AttributeCount; i++ )
{
xtr.MoveToAttribute( i );
if( xtr.Name == "EmailAddress" )
{
m_sEmailAddress = xtr.Value;
txt_Email.Text = m_sEmailAddress;
}
if( xtr.Name == "UpdateAutomatically" && xtr.Value == "true" )
{
m_bUpdateInvestments = true;
checkBox1.Checked = true;
}
if( xtr.Name == "UseEncryption" && xtr.Value == "true" )
{
m_bUseEncryption = true;
checkBox2.Checked = true;
}
if( xtr.Name == "PlayAlerts" && xtr.Value == "true" )
{
m_bPlayAlerts = true;
checkBox3.Checked = true;
} }
}
} // HasAttributes
break;
case XmlNodeType.Text:
break;
case XmlNodeType.CDATA:
break;
case XmlNodeType.ProcessingInstruction:
break;
case XmlNodeType.Comment:
break;
case XmlNodeType.XmlDeclaration:
break;
case XmlNodeType.Document:
break;
case XmlNodeType.DocumentType:
break;
case XmlNodeType.EntityReference:
break;
case XmlNodeType.EndElement:
break;
default :
break;
The structure of the xml file is as follows:
EmailAddress="youremailadderess@yourisp.com"
UpdateAutomatically="true" UseEncryption="true"
PlayAlerts="true"
I hope this helps.
|
|
|
|
|
Thanks I've got it - I neglected MoveToAttribute()
norm
|
|
|
|
|
Is there a method for defineing macros in C# like you can in C++? In C# the #define directive is only for defining symbols.
#define AddAandB (a + b)
|
|
|
|
|
C# doesn't have macro support.
|
|
|
|
|
Thank the lord for that one
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
In my application I have three combo box drop down lists containing text. I want to create an event handler that
will not allow the contents of ComboBox1 also be selected by ComboBox2 and ComboBox3. How do you do this?
mamaflynny
|
|
|
|
|
override the change event or simply when one is chosen delete the item from the other 2 and add and so on
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
i'm trying to use the streamreader in csharp to read a .ged file (ascii text). i got it to work but i want to know if there is anything i can do to make it better, ie. programming format, speed, style, etc.
thanks,
Rob
<-----------START----------->
public string[] GetIndex()
{
//
if (fstream == null)
{
MessageBox.Show("Error opening file stream.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
return null;
}
StreamReader fstreamCopy = fstream;
string textLine;
int index;
bool foundName = false;
ArrayList tmpIndex = new ArrayList();
while (fstreamCopy.BaseStream != null)
{
foundName = false;
try
{
textLine = fstreamCopy.ReadLine().Trim();
index = textLine.IndexOf("INDI");
if (index != -1)
{
while (!foundName)
{
textLine = fstreamCopy.ReadLine().Trim();
index = textLine.IndexOf("NAME");
if (index != -1)
{
tmpIndex.Add(textLine.Substring(index + 4).Trim());
foundName = true;
}
}
}
}
catch
{
fstreamCopy.Close();
}
}
string[] indIndex = new String[tmpIndex.Count];
for (int i = 0; i < tmpIndex.Count; i++)
{
indIndex[i] = tmpIndex[i].ToString();
}
return (indIndex);
//
}
<------------END------------>
There are 10 kinds of people. Those who understand binary and those who don't.
|
|
|
|
|
Great, I'll try to add a few constructive comments:
1) Early on, you handle a null value for fstream by showing a message box, then returning a null from the GetIndex() function. Typically, in C# we handle that sort of unexpected condition by throwing a an exception, rather than returning null. Error handling can be done at higher levels with try/catch blocks.
2) I'm guessing you might be thinking the line
<br />
StreamReader fstreamCopy = fstream; is copying the original StreamReader fstream, so that it's position won't be changed. It doesn't work that way, since StreamReader is a reference class, you assignment just creates an alternate name for the same object fstream referrs to.
3) At the bottom, you loop through the ArrayList to create a string array to return. There might be a better way to do this:
tmpIndex.CopyTo( 0, indIndex, 0, tmpIndex.Count );<br />
Burt Harris
|
|
|
|
|
thanks for the help and information. what would you recommend to be the best way to read an ascii file? can i keep it in memory somehow so i can search it at will or should i just read the file everytime i need to?
thanks,
Rob
|
|
|
|
|
You're welcome. Sorry for the delay, I've been on vacation, RVing the Oregon Coast. It was really great.
I'm not sure there is any generic "best" way, it depends on what you want to do with it. Keeping it in memory may help performance slightly, but the OS does enough caching that it's likely to have only a minimal effect in most cases, so I'd concentrate on what's most convienent from your application's standpoint to start. In many cases, I think about making a pass through a file, building an in-memory data structure from it's contents because I want to access it randomly (say by a persons's name) rather than sequentially.
Good luck
Burt Harris
|
|
|
|
|
I've been looking at a lot of C# code lately and have noticed that many people write property getters and setters inline, like this:
String Name
{
get { return m_name; }
set { m_name = value; }
}
I've always like to put curly braces on lines by themselves, but I find this style appealing. The problem is when a getter or setter is more than one line long. Then I end up with something like this:
String Name
{
get { return m_name; }
set
{
if (m_name == value)
return;
m_name = value;
UpdateSomething();
}
}
So the get is inline but the set is not. I'm not too thrilled about this inconsistency and would like some opinions on the matter.
How do you do it?
Thanks,
Alvaro
If you want to get to the top, prepare to kiss a lot of bottom. -- despair.com
|
|
|
|
|
I've always done it this way :
public string Name
{
get
{
}
set
{
}
}
even if the codes are only 1 line long. I know it makes my coded bloated but i figure, that's what the collapsing options are there for. Besides, they're much easier to read.
God, I pity me! - Phoncible P. Bone
If I end up Windows ME someone is going to be hurting. - One of the answers to a question for What OS are you
|
|
|
|
|
I'm with Nick, each brace on its own line no matter the amount of code within the get/set.
But I explicitly define regions around the code block; which I don't know if Nick does.
#region Public Properties
#region MyProp
public type MyProp
{
get
{
return myProp;
}
set
{
myProp = value;
}
}
#endregion
#region SecondProp
public t2 SecondProp
{
get
{
...
}
set
{
...
}
}
#endregion
#endregion This formats everything rather nicely so I can view just the properties and methods I want while looking at the source.
James
"My words but a whisper -- your deafness a SHOUT.
I may make you feel but I can't make you think." - Thick as a Brick, Jethro Tull 1972
|
|
|
|
|
I would maybe skip the #region bit for every single property, since they are easily collapsed anyway...
|
|
|
|
|
James T. Johnson wrote:
I explicitly define regions around the code block
I think that an implicit region is defined for each Method (or attribute, in this case),
so you might not need to do that....
I use regions to group members with similar characteristics, like
<br />
#region Private Fields<br />
#endregion<br />
<br />
#region Public Attributes<br />
#endregion<br />
<br />
#region Public Static Methods<br />
#endregion<br />
<br />
#region Constructors<br />
#endregion<br />
<br />
and so on
F.O.R.
|
|
|
|
|
|
Frank Olorin Rizzi wrote:
I think that an implicit region is defined for each Method (or attribute, in this case),
so you might not need to do that....
Correct, but if you have any Attributes or comments above the method or prperty then you have another block to expand/collapse. This way I still have only one region to expand to see everything and on region to collapse when I'm done.
And for whatever reason I never liked the (...) it appends
James
"My words but a whisper -- your deafness a SHOUT.
I may make you feel but I can't make you think." - Thick as a Brick, Jethro Tull 1972
|
|
|
|
|
James T. Johnson wrote:
And for whatever reason I never liked the (...) it appends
[g]Agreed, but I hate the fact that it collapses blank lines ![/g]
F.O.R.
|
|
|
|
|
I vary...
I usually do:
string Name
{
get
{
return m_name;
}
set
{
if(m_name == value) return;
m_name = value;
UpdateSomething();
}
}
(Note on the side: I put the return statement on the same line as the if, since it isn't braced.)
But when I have properties where both the get/set are one-liners, I either use:
string Name
{
get{return m_name;}
set{m_name = value;}
}
or when there are a lot of them, I may even:
string Firstname{ get{return m_firstname;} set{m_firstname = value;} }
string Lastname{ get{return m_lastname;} set{m_lastname = value;} }
string Address{ get{return m_address;} set{m_address= value;} }
I always know that if I used the latter, that its just setting a similarily named membervariable, and no special logic...
|
|
|
|
|
Well i like the first one... with a minor modificataion... Since i like the gull-wings (swedish translation) on the same row as the code, (java-style).
String Name{
get { return m_name; }
set{
if (m_name == value)
return;
m_name = value;
UpdateSomething();
}
}
|
|
|
|