C#二进制数据写入文件

 写得还不熟练,还是记录一下:

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 →

C#中关于get和set的详细例子介绍

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 →

HOW TO:利用 Visual C# .NET 使 Word 自动新建文档

概要

本文分步介绍如何利用 Visual C# .NET 的自动化功能在 Word 中创建新文档。

代码示例

本文中的代码示例将说明如何完成以下任务:

• 插入包含文本和格式的段落。

• 浏览和修改文档中的不同范围。

• 插入表格、设置表格格式并在表格中填充数据。

• 添加图表。

要利用 Visual C# .NET 的自动化功能创建新的 Word 文档,请执行以下步骤: 1. 启动 Microsoft Visual Studio .NET。在文件菜单上,单击新建,然后单击项目。在项目类型下,单击 Visual C# 项目,然后单击模板下的 Windows 应用程序。默认情况下会创建 Form1。

2. 添加对 Microsoft Word 对象库的引用。为此,请按照下列步骤操作: a.  在

Read More →

c#中String跟string的“区别”

  • string是c#中的类,String是.net Framework的类(在c# IDE中不会显示蓝色)
  • c# string映射为.net Framework的String
  • 如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作
  • 如果使用c#,建议使用string,比较符合规范   
  • string始终代表 System.String(1.x) 或 ::System.String(2.0) ,String只有在前面有using System;的时候并且当前命名空间中没有名为String的类型(class、struct、delegate、enum)的时候才代表System.String
  • string是关键字,String不是,也就是说string不能作为类、结构、枚举、字段、变量、方法、属性的名称,而String可以

Read More →

C#获取程序当前路径的方法

//获取新的 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 →

C#中时间格式的转换

有时候我们要对时间进行转换,达到不同的显示效果

默认格式为: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 →

c#读文件目录

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 →

C#获取当前IE地址栏的url

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 →

c#读写xml文件的方法

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 →

如何用c#发邮件

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#入门经典(第3版)

本书将全面介绍C#编程的所有知识,共分为5篇:

第1篇是C#语言:介绍了C#语言的所有内容,从基础知识到面向对象的技术,应有尽有。

第2篇是Windows编程:介绍如何用C#编写Windows应用程序,如何部署它们。

第3篇是Web编程:描述Web应用程序的开发、Web服务和Web应用程序的部署。

第4篇是数据访问:介绍在应用程序中如何使用数据,包括存储在硬盘文件上的数据、以XML格式存储的数据和数据库中的数据。

第5篇是其他技术:讲述使用C#和.NET Framework的一些额外方式,包括程序集、属性、XML文档、网络和GDI+图形编程。

Read More →

如何在asp.net中用c#在获得当前系统登陆的帐户的Identity

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 →

C#中的装箱与拆箱

一开始不明白是什么东西,现在明白了,也就那么回事。

装箱和拆箱:任何值类型、引用类型可以和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 →

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;
}
//方法二:
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 →

用c#读文件

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 →

C#编码标准--编码习惯(转)

1.  避免将多个类放在一个文件里面。 

2.  一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面。 

3.  一个文件最好不要超过500行的代码(不包括机器产生的代码)。 

4.  一个方法的代码长度最好不要超过25行。 

5.  避免方法中有超过5个参数的情况。使用结构来传递多个参数。

Read More →

c#中结构数组定义

虽然这个是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#链接数据库的问题

这两天做这个博客的时候,用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 →