写得还不熟练,还是记录一下:
public static void SaveFile(byte[] b, string path) { if (!File.Exists(path)) { try { File.Delete(path); } catch { MessageBox.Show("文件删除失败!"); } } using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None)) { fs.Write(b, 0, b.Length); fs.Close(); } }Read More →
get set是用来扩展域的,也就是C里的变量,只是用起来更加灵活而己。看以下代码:
using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class test { public test() { } public string name2; public string name { get { Console.WriteLine("get method - name2.value" + name2); return "121212"; } set { Console.WriteLine("set method"); name2 = value; } } } class Program { static void Main(string[] args) { test a = new test(); a.name = "jmsupersar"; Console.WriteLine(a.name); } } }Read More →
概要
本文分步介绍如何利用 Visual C# .NET 的自动化功能在 Word 中创建新文档。
代码示例
本文中的代码示例将说明如何完成以下任务:
• 插入包含文本和格式的段落。
• 浏览和修改文档中的不同范围。
• 插入表格、设置表格格式并在表格中填充数据。
• 添加图表。
要利用 Visual C# .NET 的自动化功能创建新的 Word 文档,请执行以下步骤: 1. 启动 Microsoft Visual Studio .NET。在文件菜单上,单击新建,然后单击项目。在项目类型下,单击 Visual C# 项目,然后单击模板下的 Windows 应用程序。默认情况下会创建 Form1。
2. 添加对 Microsoft Word 对象库的引用。为此,请按照下列步骤操作: a. 在
Read More →//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。
string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)
//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
string str = System.Environment.CurrentDirectory;
result: X:\xxx\xxx (.exe文件所在的目录)
//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。
string str = System.AppDomain
Read More →有时候我们要对时间进行转换,达到不同的显示效果
默认格式为:2005-6-6 14:33:34
如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢
我们要用到:DateTime.ToString的方法(String, IFormatProvider)
using System;
using System.Globalization;
String format=''''D'''';
DateTime date=DataTime,Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
结果输出
Thursday, June 16, 2005
Read More →String[] files = Directory.GetDirectories(Server.MapPath("skin")); ArrayList lt = new ArrayList(); foreach (string file in files) { int last = file.LastIndexOf("\"); //取得最后一个的位置 lt.Add(file.Substring(last + 1, file.Length - last - 1));//取得文件的文件名(不含路径) } this.DropDownList2.DataSource = lt;
须加入System.IO的命名空间
对于DropDownList默认值的设定,只要设定其SelectedIndex值,另个ArrayList型的变量也能使用IndexOf变量,返回索引值,这个以前没注意。
Read More →protected string GetUrl() { //取本页URL地址 //2004-3-3 wskyo string strTemp = ""; if(Request.ServerVariables["HTTPS"] == "off") { strTemp = "http://"; } else { strTemp = "https://"; } strTemp = strTemp + Request.ServerVariables["SERVER_NAME"]; if(Request.ServerVariables["SERVER_PORT"] != "80") { strTemp = strTemp + ":" + Request.ServerVariables["SERVER_PORT"]; } strTemp = strTemp + Request.ServerVariables["URL"]; if(Request.QueryString != null) { strTemp = strTemp + "?" + Request.QueryString; } return strTemp; } string myurl = GetUrl();Read More →
xml文件为:
<?xml version="1.0" encoding="utf-8"?>
<config>
<add key="top" value="test">
</add>
</config>
修改代码如
string XPath = "/config/add[@key=''top'']";
XmlDocument domWebConfig = new XmlDocument();
domWebConfig.Load((Http
Read More →System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp.163.com"); client.UseDefaultCredentials = false; client.Credentials = new System.Net.NetworkCredential("jmisenjoying@163.com", "**********"); //帐号密码 client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(); message.SubjectEncoding = System.Text.Encoding.UTF8; message.BodyEncoding = System.Text.Encoding.UTF8; message.From = new System.Net.Mail.MailAddress("jmisenjoying@163.com", "jm", System.Text.Encoding.UTF8); message.To.Add(new System.Net.Mail.MailAddress("jm-superstar@163.com", "jm", System.Text.Encoding.UTF8)); message.IsBodyHtml = false; message.Subject = "test"; message.Body = System.DateTime.Now.ToLongDateString(); try { client.Send(message); } catch { //... }Read More →
本书将全面介绍C#编程的所有知识,共分为5篇:
第1篇是C#语言:介绍了C#语言的所有内容,从基础知识到面向对象的技术,应有尽有。
第2篇是Windows编程:介绍如何用C#编写Windows应用程序,如何部署它们。
第3篇是Web编程:描述Web应用程序的开发、Web服务和Web应用程序的部署。
第4篇是数据访问:介绍在应用程序中如何使用数据,包括存储在硬盘文件上的数据、以XML格式存储的数据和数据库中的数据。
第5篇是其他技术:讲述使用C#和.NET Framework的一些额外方式,包括程序集、属性、XML文档、网络和GDI+图形编程。
Read More →Environment.UserName 获取启动当前线程的用户名;
Environment.UserDomainName 获取当前用户所在的域.
// Sample for the Environment.UserName property using System; class Sample { public static void Main() { Console.WriteLine(); Console.WriteLine("UserName: {0}", Environment.UserName); } }Read More →
一开始不明白是什么东西,现在明白了,也就那么回事。
装箱和拆箱:任何值类型、引用类型可以和object(对象)类型之间进行转换。装箱转换是指将一个值类型隐式或显式地转换成一个object类型,或者把这个值类型转换成一个被该值类型应用的接口类型(interface-type)。把一个值类型的值装箱,就是创建一个object实例并将这个值复制给这个object,装箱后的object对象中的数据位于堆中,堆中的地址在栈中。被装箱的类型的值是作为一个拷贝赋给对象的。如:
int i = 10; object obj = i; //隐式装箱 object obj = object(i); //显式装箱 if(obj is int) //int Console.WriteLine(“OK”); Console.WriteLine(obj.GetType()); //System.Int32
有两种方式来查看包装以后的引用对象中包装的原始数据的类型。要判断原始类型是否是某个给定的原子类型,用is;如果要返回一个字符串,可以用object类的GetType方法。
拆箱转换是指将一个对象类型显式地转换成一个值类型,或是将一个接口类型显式地转换成一个执行该接口地值类型。注意装箱操作可以隐式进行但拆箱操作必须是显式的。拆箱过程分成两步:首先,检查这个对象实例,看它是否为给定的值类型的装箱值。然后,把这个实例的值拷贝给值类型的变量。比如:
int i = 10; object obj = i; int j = (int)obj;Read More →
//方法一: static bool IsNumeric(string str) { if (str == null || str.Length == 0) return false; foreach(char c in str) { if (!Char.IsNumber(c)) { return false; } } return true; } //方法二: private bool IsNumeric(string s) { char ch0 = '0'; char ch9 = '9'; for(int i = 0; i < s.Length; i++) { if ((s[i] < ch0 || s[i] > ch9)) { this.lblwarning.Text = "此处应输入整数且非负!"; return false; } } return true; } //方法三: static bool IsNumeric (string str) { System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[-]?d+[.]?d*$"); return reg1.IsMatch(str); } //方法四:(可扩展) public static bool IsConvert(string Expression, Type DataType) { switch(DataType.Name) { case "Double": try { Double.Parse(Expression); return true; } catch { return false; } case "DateTime": try { DateTime.Parse(Expression); return true; } catch { return false; } default: return true; } } //C#验证输入的是否数字的方法,其实用正则表达式也可以 static bool IsNumeric(string str) { if (str == null || str.Length == 0) return false; foreach(char c in str) { if (!Char.IsNumber(c)) { return false; } } return true; } //正则表达的写法是: static bool IsNumeric(string str) { System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[-]?d+[.]?d*$"); return reg1.IsMatch(str); }Read More →
using System; using System.IO; using System.Collections; class Anagrams { public static void Main(String[] args) { StreamReader din = File.OpenText ("words.txt"); String str; StringTable st = new StringTable(); Console.WriteLine("Reading data and insterting into a StringTable."); while ((str=din.ReadLine()) != null) { st.Add(str); } Console.WriteLine("Printing out the StringTable."); foreach (string s in st) { Console.WriteLine (s); } Console.WriteLine (" Press Return to exit."); Console.Read(); } }Read More →
1. 避免将多个类放在一个文件里面。
2. 一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面。
3. 一个文件最好不要超过500行的代码(不包括机器产生的代码)。
4. 一个方法的代码长度最好不要超过25行。
5. 避免方法中有超过5个参数的情况。使用结构来传递多个参数。
Read More →虽然这个是c#语言学习的基础,但是写一下,因为和C的数组定义方法不太一样,但大同小异
下面是网上搜的一些资料,整理了一下。。
数组概述
C# 数组从零开始建立索引,即数组索引从零开始。C# 中数组的工作方式与在大多数其他流行语言中的工作方式类似。但还有一些差异应引起注意。
声明数组时,方括号 ([]) 必须跟在类型后面,而不是标识符后面。在 C# 中,将方括号放在标识符后是不合法的语法。
int[] table; // not int table[];
另一细节是,数组的大小不是其类型的一部分,而在 C 语言中它却是数组类型的一部分。这使您可以声明一个数组并向它分配 int 对象的任意数组,而不管数组长度如何。
int[] numbers; // declare numbers as an int array of any s
Read More →这两天做这个博客的时候,用c#链接数据库的问题一直困扰着我,头痛,不知怎么连。。。
一开始所有的数据库操作,我都是用数据集的方法来做的,现在不行了,想要的javascript中插入从数据库读出数据赋给js中的变量,在百度上找了好多的资料,终于解决了,现在做个有心人,写下来,方便以后查阅,复习。
第一步:asp.net的最大特点和优点就是实现了代码分离技术,也就是说我们定义的脚本放在一个单独的文件里面。那我们就使用代码分离技术,不再在网页里面放脚本的代码。我们既然要连接数据库,那我们先把所用类的名字空间引入,要不然写类名时要非常长。也就是说我们网页的那个*.cs的文件的头部加上
using System.Data.OleDb
如果没有使用代码分离技术在aspx文件的头部加上
<%@Import Namespace="System.Data"%> <%@Import Namespace="System.Data.OleDb"%>
第二步:和asp一样,连接数据库要先写出来连接数据库用的字符串,这个字符串里面包括你所用的数据库类型,路径等参数。下面便是一个用于连接数据库的字符串的例子。
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;DataSource=";strConnection+=Server.MapPath("ssln.mdb"); //ssln.mdb就是数据库的名字
我们定义了这个字符串以后就要定义一个oledbconnection来连接数据库了,下面给一个例子
OleDbConnection conn=new OleDbConnection(strConnection);
conn.Open(); //这里是调用 OleDbConnection类的open方法来打开数据库,我们对数据库进行操作之前 要先打开数据库,我们对数据库停止使用后要调用OleDbConnection类的close方法来关闭数据库,以防数据丢失
到这里已经实现了access数据库的连接,但如何实现对数据库的操作呢?
下面是一个例子:(例子作了一个超链接,原因是HTML代码相互掺插会现一点问题,我还没有想到好的解决方法,所有只现在这里加个链接了,如果你有什么好的建议的话,留言啊。。。Me我也行)
Read More →