目录
8.在使用Stream读取写入文件的时候,如何处理文本格式的问题? 6
问题解答:
-
怎样将string类型向Boolean转换的方法
将string型变量转换成Boolean型变量的方法,使用Convert.toBoolean(string)方法。
-
怎样获取xml属性名称
将数据以XML文档的形式存储,若一个元素中有多个属性,可以使用XmlTextReader.MoveToNextAttribute() 函数或者XmlTextReader.MoveToAttribute() 跳转到该节点的下一属性或指定位置的属性上,再使用XmlTextReader.Name获取该属性名。(XmlTextReader类可以替换成其他对xml文档进行操作的类)
-
数据库及sql语句中关键字的使用
在数据库中,为避免列名字段和以用关键字冲突,可以在可能会发生冲突的字段上加[ ]符号,例如列名[Default]。同时,再写sql语句时涉及到列名时最好都加上[ ]为避免语句出错(如果列名没有加[ ]而sql语句中加上了,也不会有错)
-
怎样使用sql语句插入bit型数据
写sql语句插入bit型的数据时,插入0或1,若值为true,插入1,若值为false,插入0.
5. String类和StringBuilder类方法
String.Format()方法在进行字符串的格式化时是非常有用的,有时虽然逻辑上是由str+=的方法比较简单,但是格式比较凌乱,给读者带来较大的麻烦,也为后期维护带来不便,并且这种方法看似简单实则要消耗大量资源。String.Format("{0}...",...)方法类似一个模板,可以向里面填充各种数据类型的变量。StringBuilder.Append(),StringBuilder.AppendFormat()方法也是非常有用的方法,另外,还有一些方法,有待实际操作中熟练使用。值得注意的一点是,在对String类或StringBuilder类的对象进行插入、删除、替操作的时候,并不是在原来的对象上进行直接修改,所以要将修改后的结果付给一个新的变量,该变量是修改后的结果,原来的对象保持不变。
6. String和StringBuilder的区别
String提供了更多的操作方法,但是在操作性能和内存效率方面,StringBuilder要比String好得多。所以,如果应用对于系统性能、内存要求比较严格,以及经常处理大规模的字符串,推荐使用StringBuilder对象;否则,可以选择使用String。
7.如何用XSD文件验证XML文档格式的方法
首先要有相应的.xsd文件与.xml对应(可以DataSet生成.xsd文件,例如:DataSet ds=newDataSet();ds.ReadXml(filename1);ds.WriteXmlSchema(filename2))。之后键入以下代码:
XmlSchemaCollection myXmlSchemaCollection = new XmlSchemaCollection();
myXmlSchemaCollection.ValidationEventHandler+=new ValidationEventHandler(ValidationCallBack);
myXmlSchemaCollection.Add(null , "FullData.xsd");
XmlTextReader myXmlTextReader = new XmlTextReader(@"C:\Documents and Settings\MichaelGates\桌面\FullData.xml");
XmlValidatingReader myXmlValidatingReader = new XmlValidatingReader(myXmlTextReader);
myXmlValidatingReader.ValidationType = ValidationType.Schema;
myXmlValidatingReader.Schemas.Add(myXmlSchemaCollection);
myXmlValidatingReader.ValidationEventHandler+=new ValidationEventHandler(ValidationCallBack);//事件委托
while(myXmlValidatingReader.Read());
Console.WriteLine("Validation finished");
private static void ValidationCallBack(object sender, ValidationEventArgs e)
{
//执行某些操作,要显示相关错误信息,使用e,例如e.Message
}
8.在使用Stream读取写入文件的时候,如何处理文本格式的问题?
在使用Stream流读取文件时,存在不同文件使用格式不同的问题,默认情况下时ANSI格式的文本,这时使用其它格式流读取或写入就会出现问题,如使用UTF-8读取,虽然可以判断文本格式类型进行相应的读取、写入操作,但是相对比较繁琐,可以使用System.Encoding.Defualt类型,及GB2312进行操作,即可以操作ANSI格式的文本也可以操作UTF-8的文本
StreamReaderfr=new StreamReader(this.txtFilePath.Text,System.Text.Encoding.Default);
9.如何TreeView控件的使用
在Windows Form程序中可以使用TreeView控件实现类似资源浏览器的效果。在TreeView控件中有_BeforeExpand()函数可以在点击树形结构折叠时被触发,_AfterSelect()事件可以在节点被选中后被触发。(注意:添加的类型必须是节点类型,所以需要将文件和文件夹信息转换成节点类型)。
10.如何获取路径下所有文件和文件夹
System.IO.DirectoryInfo类可以获得路径下的所有文件和文件夹信息,DirectoryInfo dir=new DirectoryInfo(path);DirectoryInfo[] e=dir.GetDirectories()将路径下所有文件夹节点存入数组中;FileInfo[] fileList=dir.GetFiles()方法将路径下所有的文件节点存入数组中,利用数组进行后面操作,例如将数组中的信息添加到TreeView中。
-
如何动态添加自定义的tabpage
动态在tabcontrol中添加tabpage并不难做到,只需使用使用tabControl..Controls.Add(new TabPage())就可以轻松实现,但是新建的tabpage是个空白的,如何才能在新建的tabpage中显示大家希望添加的空间并且实现相应的事件呢?首先,我们要新建一个新的TabPage类,让他继承System.Window.TabPage父类,在这个类中,我们只能手写代码而不能用鼠标拖拽控件,所以,尽量将控件添加到一个Form中,在其中添加相应的事件,再在TabPage中将这个Form当作一个控件添加进去,具体实现代码如下:
TopicForm = new page(this.path); //TopicForm为用户自定义的Form,在下面将被当作控件添加到TabPage中
TopicForm.TopLevel = false;
this.Controls.Add(TopicForm);
TopicForm.Location = new System.Drawing.Point(0, 0);
TopicForm.Dock = DockStyle.Fill;
TopicForm.Size = new System.Drawing.Size(this.Width, this.Height);
TopicForm.Visible = true;
这样在动态创建新的tabPage时只要new 新的TabPage类得到实例就可以实现添加想要的tabPage了。