论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Asp.net教程
Tag:静态页面,treeview,gridview,repeater,dataset,sqldatareader,ado.net,上传,三层,ajax,xml,留言本,新闻发布,商城,注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,触发器,socket,form认证,登录,视频教程

asp.net中静态的类和成员函数都是静态的

文章类别:Asp.net | 发表日期:2011-4-16 14:34:48

  我们了解一下asp.net中静态类和成员函数,正如标题所说,他们都是静态的,看看作者是如何解析的吧。
  为什么标题说都是静态的呢?因为他们都是有static修饰符作用下的,由static所修饰的类或者成员都是静态类或者静态成员,其实我也比较喜欢使用静态类和静态方法了,给大伙看下这个静态的类和静态的成员函数,怀旧下单层封装思想,呵呵..
using System;
using System.Collections.Generic;
//using System.Linq;
using System.Web;
using System.Data.OleDb;
using System.Data;

namespace Sophie
{
/// <summary>
/// db 的摘要说明。
/// </summary>
public class db
{
public db()
{
}
/// <summary>
/// 创造一个数据库连接函数
/// ex:CreateConnetion()
/// </summary>
/// <returns>返回一个数据库连接对象</returns>

private static OleDbConnection CreateConnection()
{
string databasestr = System.Configuration.ConfigurationSettings.AppSettings["connstr"];
string constr;
constr
= "provider=Microsoft.Jet.OleDb.4.0;data source="
+ System.Web.HttpContext.Current.Server.MapPath(@databasestr);
OleDbConnection con
= new OleDbConnection(constr);
return con;
}

/// </summary>
/// 构造一个通用的OleDbParameter
/// ex:PrepareCommand(new OleDbparameter("@me","你们好"),true,sqlstr,conn)
/// <param name="conn">数据库连接对象</param>
/// <param name="sqlstr">sql操作字符串</param>
/// <param name="typed">是否使用OleDbParameters的参数数据</param>
/// <param name="parm">OleDbParameters的参数娄组</param>
/// <returns>返回一个数据库操作对象</returns>

private static OleDbCommand PrepareCommand(OleDbConnection conn, string sqlstr, bool typed, OleDbParameter[] parm)
{
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
OleDbCommand com
= new OleDbCommand("", conn);

com.CommandText
= sqlstr;
if (typed)
{
foreach (OleDbParameter parmitem in parm)
{
com.Parameters.Add(parmitem);
}
}
return com;
}

/// <summary>
/// 返回查询数据的第一行第一列
/// </summary>
/// <param name="conn">同上</param>
/// <param name="sqlstr">同上</param>
/// <param name="typed">同上</param>
/// <param name="parm">同上</param>
/// <returns>返回一个object对象</returns>
public static object ExecuteScalar(string sqlstr, OleDbParameter[] parm)
{

OleDbConnection conn
= CreateConnection();
OleDbCommand com
= PrepareCommand(conn, sqlstr, true, parm);
object show = com.ExecuteScalar();

conn.Close();
com.Parameters.Clear();
return show;
}

public static object ExecuteScalar(string sqlstr)
{

OleDbConnection conn
= CreateConnection();
OleDbCommand com
= PrepareCommand(conn, sqlstr, false, null);
object show = com.ExecuteScalar();

conn.Close();
com.Parameters.Clear();
return show;
}

/// <summary>
/// </summary>
/// <param name="conn">同上</param>
/// <param name="sqlstr">同上</param>
/// <param name="typed">同上</param>
/// <param name="parm">同上</param>
/// <returns>返回受影响的行数</returns>
public static int ExecuteNonQuery(string sqlstr, OleDbParameter[] parm)
{
OleDbConnection conn
= CreateConnection();
OleDbCommand com
= PrepareCommand(conn, sqlstr, true, parm);
int show = com.ExecuteNonQuery();

conn.Close();
com.Parameters.Clear();
return show;
}

public static int ExecuteNonQuery(string sqlstr)
{
OleDbConnection conn
= CreateConnection();
OleDbCommand com
= PrepareCommand(conn, sqlstr, false, null);
int show = com.ExecuteNonQuery();

conn.Close();
com.Parameters.Clear();
return show;
}
/// <summary>
/// 构造一个datareader的函数
/// </summary>
/// <param name="conn">同上</param>
/// <param name="sqlstr">同上</param>
/// <param name="typed">同上</param>
/// <param name="parm">同上</param>
/// <returns>返回一个向前读的流的对象OleDbDataReader</returns>
public static OleDbDataReader ExecuteDataReader(string sqlstr, OleDbParameter[] parm)
{
OleDbConnection conn
= CreateConnection();
OleDbCommand com
= PrepareCommand(conn, sqlstr, true, parm);
OleDbDataReader dr
= com.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}

public static OleDbDataReader ExecuteDataReader(string sqlstr)
{
OleDbConnection conn
= CreateConnection();
OleDbCommand com
= PrepareCommand(conn, sqlstr, false, null);
OleDbDataReader dr
= com.ExecuteReader(CommandBehavior.CloseConnection);
com.Parameters.Clear();
return dr;
}

/// <summary>
/// 构造一个dataview的函数
/// </summary>
/// <param name="sqlstr">同上</param>
/// <param name="typed">同上</param>
/// <param name="parm">同上</param>
/// <returns>返回一个dataview的对象</returns>
public static DataView ExecuteDataview(string sqlstr, OleDbParameter[] parm)
{

OleDbConnection conn
= CreateConnection();
OleDbCommand com
= PrepareCommand(conn, sqlstr, true, parm);
OleDbDataAdapter pter
= new OleDbDataAdapter(com);
DataSet ds
= new DataSet();
pter.Fill(ds,
"datasource");
DataView dataShow
= ds.Tables["datasource"].DefaultView;
conn.Close();
com.Parameters.Clear();
return dataShow;

}

public static DataView ExecuteDataview(string sqlstr)
{

OleDbConnection conn
= CreateConnection();
OleDbCommand com
= PrepareCommand(conn, sqlstr, false, null);
OleDbDataAdapter pter
= new OleDbDataAdapter(com);
DataSet ds
= new DataSet();
pter.Fill(ds,
"datasource");
DataView dataShow
= ds.Tables["datasource"].DefaultView;
conn.Close();
com.Parameters.Clear();
return dataShow;

}
}

}
     在这个类当中都采用了静态成员方法,此时我就没有必要创建实例实现,直接为静态类成员,静态成员在访问的时候直接引用类名而不用对象名,此时你要注意,像this关键字就不可以访问静态成员,此时的成员可以作多个对象访问共享的数据,当类中没有和对象实例相关得成员,只有静态成员时,可以声明该类为静态类,静态类不可以用new创建对象,自然而然不可以编写构造函数
 静态类的声明如下代码:
访问修饰符   static  class  类名称
{
      静态类成员1;
      静态类成员2;
      静态类成员3;
}
 
最后注意:类中的常数声明和类型声明都默认为静态,即这个类默认为static无法被所属类对象访问的.
代码例子:
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CStatic
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(
"------类访问静态方法-------");
Console.WriteLine(
"今天的新闻的主角是:");
MyStatic.ShowName();
Console.WriteLine(
"------对象访问非静态方法-------");
MyStatic ms
= new MyStatic();
Console.WriteLine(
"因为他"+ms.Msg);
Console.ReadLine();
}
}
class MyStatic
{
public static string Name="类菌体"; //静态字段
public string Msg="在06年的时候考上北京航天航空大学,祝贺他!";//非静态字段
public static void ShowName()//静态的成员
{
Console.WriteLine(Name);
}
public void ShowMsg()//非静态的成员
{
Console.WriteLine(Msg);
}
}
}
 
编译结果:
视频教程列表
文章教程搜索
 
Asp.net推荐教程
Asp.net热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058