主要封装为MySqlHelper类

namespace CiWong.LearningLevelApi.MySqlHelp
{
/// <summary>
/// MySqlHelper 类是基于.net框架开发的数据库操作类
/// </summary>
public class MySqlHelper
{
#region 缓存Hashtable
// 存储缓存参数的Hashtable
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
#endregion #region 重载+1 获取连接字符串
/// <summary>
/// 重载+1 获取连接字符串 [GetStrCon()]
/// </summary>
/// <returns>连接字符串(如果配置文件中无[SQL]名称的连接字符串,则抛出异常)</returns>
public static string GetStrCon()
{
try
{
string CONN_STRING = ConfigurationManager.ConnectionStrings["QuesContext"].ConnectionString;
return CONN_STRING;
}
catch (Exception ex)
{
Console.WriteLine(string.Format("配置文件中没有[SQL]名称的connectionStrings!错误原因:{0}", ex.ToString()));
throw;
}
}
#endregion #region 重载+2 获取连接字符串
/// <summary>
/// 重载+2 获取连接字符串 [GetStrCon(string strConfig)]
/// 如果配置文件中有strConfig为名称的连接字符串,则
/// 获取它的内容
/// 如果没有,则默认strConfig为连接字符串
/// </summary>
/// <param name="strConfig">配置文件中连接字符串的名称</param>
/// <returns>连接字符串</returns>
public static string GetStrCon(string strConfig)
{
string CONN_STRING = string.Empty;
if (ConfigurationManager.ConnectionStrings[strConfig] != null)
CONN_STRING = ConfigurationManager.ConnectionStrings[strConfig].ConnectionString;
else
CONN_STRING = strConfig;
return CONN_STRING;
}
#endregion #region 重载+1 创建连接对象 [GetConn()]
/// <summary>
/// 重载+1 返回 conn连接对象 [GetConn()]
/// </summary>
/// <returns> MySqlConnection </returns>
public static MySqlConnection GetConn()
{
try
{
return new MySqlConnection(GetStrCon());
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
throw;
}
}
#endregion #region 重载+2 创建连接对象 [GetConn()]
/// <summary>
/// 重载+2 返回 conn连接对象 [GetConn()]
/// 如果配置文件中有strConfig名称的连拉字符串,则
/// 获取它的内容
/// 如果没有,则默认strConfig为连接字符串
/// </summary>
/// <param name="strConfig">配置文件中连接字符串的名称</param>
/// <returns> MySqlConnection </returns>
public static MySqlConnection GetConn(string strConfig)
{
try
{
return new MySqlConnection(GetStrCon(strConfig));
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
throw;
}
}
#endregion #region 关闭连接[CloseConn(...)]
/// <summary>
/// 关闭 conn连接对象
/// </summary>
/// <param name="conn">连接对象</param>
public static void CloseConn(MySqlConnection conn)
{
if (conn.State != ConnectionState.Closed)
conn.Close();
}
#endregion #region 清空与指定连接相关的连接池
/// <summary>
/// 清空与指定连接相关的连接池 [ClosePool(MySqlConnection conn)]
/// </summary>
public static void ClosePool(MySqlConnection conn)
{
MySqlConnection.ClearPool(conn);
}
#endregion #region 清空所有连接池
/// <summary>
/// 清空所有连接池 [ClosePool()]
/// </summary>
public static void ClosePool()
{
MySqlConnection.ClearAllPools();
}
#endregion #region 返回MySqlCommand对象[GetCmd(...)]
/// <summary>
/// 返回MySqlCommand对象
/// </summary>
/// <param name="conn">conn 连接对象</param>
/// <param name="trans">事物对象</param>
/// <param name="cmdType">SQL 执行的类型</param>
/// <param name="cmdText">SQL 执行语句</param>
/// <param name="cmdParms">MySqlParameter[] 对象</param>
/// <returns> 返回comm 对象</returns>
public static MySqlCommand GetCmd(MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
try
{
if (conn.State != ConnectionState.Open)
conn.Open(); MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandType = cmdType;
cmd.CommandText = cmdText; if (trans != null)
cmd.Transaction = trans; if (cmdParms != null)
{
foreach (MySqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
} return cmd;
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
throw;
}
}
#endregion #region 重载+1 通过连接字符串,执行SqlCommand(不返回结果集)[ExecuteNonQuery(...)]
/// <summary>
/// 重载+1 通过连接字符串,执行SqlCommand(不返回结果集)
/// 利用提供的参数值
/// </summary>
/// <remarks>
/// e.g.:
/// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connString">为MySqlConnection对象提供:一个有效的连接字符串</param>
/// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
/// <param name="cmdText">存储过程名称或SQL命令文本</param>
/// <param name="cmdParms">执行命令的参数列表</param>
/// <returns>执行命令受影响的记录条数</returns>
public static int ExecuteNonQuery(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
try
{
MySqlCommand cmd = new MySqlCommand(); using (MySqlConnection conn = new MySqlConnection(connString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.Dispose();
return val;
}
}
catch (Exception ex)
{
//引发异常,没有记录受影响
Console.WriteLine(ex.ToString());
throw;
}
}
#endregion #region 重载+2 通过存在的MySqlConnection对象,执行MySqlCommand(不返回结果集)[ExecuteNonQuery(...)]
/// <summary>
/// 重载+2 通过存在的MySqlConnection对象,执行MySqlCommand(不返回结果集)
/// 利用提供的参数值
/// </summary>
/// <remarks>
/// e.g.:
/// int result = ExecuteNonQuery(conn, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="conn">一个已经存在的SqlConnection对象</param>
/// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
/// <param name="cmdText">存储过程名称或SQL命令文本</param>
/// <param name="cmdParms">执行命令的参数列表</param>
/// <returns>执行命令受影响的记录条数</returns>
public static int ExecuteNonQuery(MySqlConnection conn, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
try
{
MySqlCommand cmd = new MySqlCommand(); PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.Dispose();
return val;
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
//引发异常,没有记录受影响
throw;
}
finally
{
conn.Close();
}
}
#endregion #region 重载+3 通过存在的 MySqlTransaction,执行MySqlCommand(不返回结果集)[ExecuteNonQuery(...)]
/// <summary>
/// 重载+3 通过存在的 MySqlTransaction,执行MySqlCommand(不返回结果集)
/// 利用提供的参数值
/// </summary>
/// <remarks>
/// e.g.:
/// int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="trans">一个已经存在的 trans</param>
/// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
/// <param name="cmdText">存储过程名称或SQL命令文本</param>
/// <param name="cmdParms">执行命令的参数列表</param>
/// <returns>执行命令受影响的记录条数</returns>
public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
try
{
MySqlCommand cmd = new MySqlCommand(); PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.Dispose();
return val;
}
catch (Exception ex)
{
//引发异常,没有记录受影响
Console.WriteLine(ex.ToString());
throw;
}
finally
{
trans.Connection.Close();
}
}
#endregion #region 重载+1 通过连接字符串,执行MySqlCommand(返回结果集) [ExecuteDataSet(...)]
/// <summary>
/// 重载+1 通过连接字符串,执行MySqlCommand(返回结果集)
/// 利用提供的参数值
/// </summary>
/// <remarks>
/// e.g.:
/// DataSet ds = ExecuteDataSet(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connString">为MySqlConnection对象提供:一个有效的连接字符串</param>
/// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
/// <param name="cmdText">存储过程名称或SQL命令文本</param>
/// <param name="cmdParms">执行命令的参数列表</param>
/// <returns>返回一个结果集:DataSet对象</returns>
public static DataSet ExecuteDataSet(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
DataSet ds = new DataSet();
//使用一个异常,如果发生异常,则将连接关闭
try
{
using (MySqlConnection conn = new MySqlConnection(connString))
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
MySqlDataAdapter adp = new MySqlDataAdapter(cmd);
adp.Fill(ds);
cmd.Parameters.Clear();
cmd.Dispose();
return ds;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
throw;
}
}
#endregion #region 重载+2 通过已经存在的MySqlConnection对象,执行MySqlCommand(返回结果集) [ExecuteDataSet(...)]
/// <summary>
/// 重载+2 通过已经存在的MySqlConnection对象,执行MySqlCommand(返回结果集)
/// 利用提供的参数值
/// </summary>
/// <remarks>
/// e.g.:
/// DataSet ds = ExecuteDataSet(conn, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="conn">一个已经存在的MySqlConnection对象</param>
/// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
/// <param name="cmdText">存储过程名称或SQL命令文本</param>
/// <param name="cmdParms">执行命令的参数列表</param>
/// <returns>返回一个结果集:DataSet对象</returns>
public static DataSet ExecuteDataSet(MySqlConnection conn, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
DataSet ds = new DataSet();
//使用一个异常,如果发生异常,则将连接关闭
try
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
MySqlDataAdapter adp = new MySqlDataAdapter(cmd);
adp.Fill(ds);
cmd.Parameters.Clear();
cmd.Dispose();
return ds;
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
throw;
}
finally
{
conn.Close();
}
}
#endregion #region 重载+1 通过连接字符串,执行MySqlCommand(返回结果集的一个MySqlDataReader对象)[ExecuteReader(...)]
/// <summary>
/// 重载+1 通过连接字符串,执行MySqlCommand(返回结果集的一个MySqlDataReader对象)
/// 利用提供的参数值
/// </summary>
/// <remarks>
/// e.g.:
/// MySqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connString">为MySqlConnection对象提供:一个有效的连接字符串</param>
/// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
/// <param name="cmdText">存储过程名称或SQL命令文本</param>
/// <param name="cmdParms">执行命令的参数列表</param>
/// <returns>包含结果集的一个:MySqlDataReader对象</returns>
public static MySqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
MySqlConnection conn = new MySqlConnection(connString); //使用一个异常,如果发生异常,则将连接关闭
try
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
cmd.Dispose();
return rdr;
}
catch (Exception ex)
{
CloseConn(conn);
Console.WriteLine(ex.ToString());
throw;
}
}
#endregion #region 重载+2 通过已经存在的MySqlConnection对象,执行MySqlCommand(返回结果集的一个MySqlDataReader对象) [ExecuteReader(...)]
/// <summary>
/// 重载+2 通过已经存在的MySqlConnection对象,执行MySqlCommand(返回结果集的一个MySqlDataReader对象)
/// 利用提供的参数值
/// </summary>
/// <remarks>
/// e.g.:
/// MySqlDataReader r = ExecuteReader(conn, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="conn">一个已经存在的SqlConnection对象</param>
/// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
/// <param name="cmdText">存储过程名称或SQL命令文本</param>
/// <param name="cmdParms">执行命令的参数列表</param>
/// <returns>包含结果集的一个:MySqlDataReader对象</returns>
public static MySqlDataReader ExecuteReader(MySqlConnection conn, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
//使用一个异常,如果发生异常,则将连接关闭
try
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
cmd.Dispose();
return rdr;
}
catch (Exception ex)
{
CloseConn(conn);
Console.WriteLine(ex.ToString());
throw;
}
}
#endregion #region 重载+1 通过连接字符串,执行MySqlCommand [ExecuteScalar(...)]
/// <summary>
/// 重载+1 通过连接字符串,执行MySqlCommand(返回第一条记录的第一列的值,一般是返回汇总值等;如:select max(id) from userTab)
/// 利用提供的参数值
/// </summary>
/// <remarks>
/// e.g.:
/// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connString">为MySqlConnection对象提供:一个有效的连接字符串</param>
/// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
/// <param name="cmdText">存储过程名称或SQL命令文本</param>
/// <param name="cmdParms">执行命令的参数列表</param>
/// <returns>返回一个对象:如果要使用具体的值,需要使用Convert.To{Type}进行转换</returns>
public static object ExecuteScalar(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
try
{
MySqlCommand cmd = new MySqlCommand(); using (MySqlConnection conn = new MySqlConnection(connString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
cmd.Dispose();
return val;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
throw;
}
}
#endregion #region 重载+2 通过已经存在的MySqlConnection对象,执行MySqlCommand [ExecuteScalar(...)]
/// <summary>
/// 重载+2 通过已经存在的MySqlConnection对象,执行MySqlCommand(返回第一条记录的第一列的值,一般是返回汇总值等;如:Select max(ColumnName) From TableName)
/// 利用提供的参数值
/// </summary>
/// <remarks>
/// e.g.:
/// Object obj = ExecuteScalar(conn, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="conn">一个已经存在的SqlConnection对象</param>
/// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
/// <param name="cmdText">存储过程名称或SQL命令文本</param>
/// <param name="cmdParms">执行命令的参数列表</param>
/// <returns>返回一个对象:如果要使用具体的值,需要使用Convert.To{Type}进行转换</returns>
public static object ExecuteScalar(MySqlConnection conn, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
try
{
MySqlCommand cmd = new MySqlCommand(); PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
cmd.Dispose();
return val;
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
throw;
}
finally
{
CloseConn(conn);
}
}
#endregion #region 将参数数组增加至Hashtable,缓存在缓冲区 [CacheParameters(...)]
/// <summary>
/// 存储:将参数数组增加至缓冲区
/// </summary>
/// <param name="cacheKey">缓冲区参数的键名</param>
/// <param name="cmdParms">缓冲区对应键名的参数值</param>
public static void CacheParameters(string cacheKey, params MySqlParameter[] cmdParms)
{
parmCache[cacheKey] = cmdParms;
}
#endregion #region 从缓冲区得到Hashtable中的参数列表的值 [GetCachedParameters(...)]
/// <summary>
/// 检索值:得到缓冲区中的参数列表值
/// </summary>
/// <param name="cacheKey">缓冲区参数的键名</param>
/// <returns>缓冲区对应键名的参数值</returns>
public static MySqlParameter[] GetCachedParameters(string cacheKey)
{
//获取 key 为cachekey 的值 parmCache[参数化SQL语句]=parameter[]数据组对象
MySqlParameter[] cachedParms = (MySqlParameter[])parmCache[cacheKey]; //如果不存在 则返回为空
if (cachedParms == null)
return null;
//反之 Hashtable表中存在 key为cacheky 的对象则返回 他的 副本 对象 par[]
MySqlParameter[] clonedParms = new MySqlParameter[cachedParms.Length]; for (int i = 0, j = cachedParms.Length; i < j; i++)
clonedParms[i] = (MySqlParameter)((ICloneable)cachedParms[i]).Clone(); return clonedParms;
}
#endregion #region 执行预定义Command对象[PrepareCommand(...)]
/// <summary>
/// 要执行:预定义Command对象(PrepareCommand)
/// </summary>
/// <param name="cmd">MySqlCommand 对象</param>
/// <param name="conn">MySqlConnection 对象</param>
/// <param name="trans">MySqlTransaction 对象</param>
/// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
/// <param name="cmdText">存储过程名称或SQL命令文本,如:select * from UserTab</param>
/// <param name="cmdParms">Command对象需要使用的参数列表</param>
public static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
{
try
{
if (conn.State != ConnectionState.Open)
conn.Open(); cmd.Connection = conn;
cmd.CommandText = cmdText; if (trans != null)
cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null)
{
foreach (MySqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
throw;
}
}
#endregion #region 提交事务 [TransactionCommit(...)]
/// <summary>
/// 提交事务
/// </summary>
/// <param name="trans">事务</param>
public static void TransactionCommit(MySqlTransaction trans)
{
trans.Commit();
}
#endregion #region 回滚事务 [TransactionRollback(...)]
/// <summary>
/// 回滚事务
/// </summary>
/// <param name="trans">事务</param>
public static void TransactionRollback(MySqlTransaction trans)
{
trans.Rollback();
}
#endregion
}
}

  

MySql数据库连接操作的更多相关文章

  1. Mysql数据库连接、查询、记录集操作代码

    Mysql数据库链接代码 function dbConnect($hostname,$username,$pass,$db_name,$pconnect =0) { $func=empty($pcon ...

  2. python操作MySQL数据库连接

    目录 一:python操作MySQL 1.python如何操作MySQL? 2.什么是 PyMySQL? 二:PyMySQL 安装 1.方法一: 2.方法二: 三:pyMySQL模块基本使用 1.py ...

  3. PHP mysql基础操作

    mysql连接操作 //建立连接$con = mysql_connect('localhost', 'root', '123456');//判断是否连接成功if($con){ die('连接失败!'. ...

  4. MYSQL常用操作函数的封装

    1.mysql常用函数封装文件:mysql.func.php <?php /** * 连接MYSQL函数 * @param string $host * @param string $usern ...

  5. Mysql数据库连接查询

                                    Mysql数据库连接查询 连接是关系数据库模型的主要特点.连接查询是关系数据库中最主要的查询,主要包括内连接.外连接等.通过连接运算可以 ...

  6. Python实现Mysql数据库连接池

    python连接Mysql数据库: python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源,而且访 ...

  7. mysql数据库连接池使用(三)数据库元数据信息反射数据库获取数据库信息

    1.1. mysql数据库连接池使用(三)数据库元数据信息反射数据库获取数据库信息 有时候我们想要获取到数据库的基本信息,当前程序连接的那个数据库,数据库的版本信息,数据库中有哪些表,表中都有什么字段 ...

  8. Java通过JDBC 进行MySQL数据库操作

    转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...

  9. node+mysql 数据库连接池

    1. 什么是数据库连接池? 数据库连接池是程序启动时建立足够的数据库连接,并将这些连接组成一个池,由程序动态地对池中的连接进行申请,使用和释放. 2. 使用数据库连接池原理及优点是什么? 数据库连接池 ...

随机推荐

  1. 【Swift初见】Swift词典

    顾名思义.当我们仰望的时候,我们将基于索引查找我们需要找到的资源.在swift这同样适用,每个对象包括字典key和value.我们key为了找到当前这个key相应的value.与数组不同的是,字典项字 ...

  2. Net下无敌的ORM

    Dapper ORM 用法—Net下无敌的ORM http://www.renfb.com/blog/2011/Article/335 假如你喜欢原生的Sql语句,又喜欢ORM的简单,那你一定会喜欢上 ...

  3. Tair LDB基于Prefixkey找到如何提取一系列性能优化项目key的prefix_size

    眼下项目已快截止,编码任务也基本完毕.如今主要是性能測试. 项目是依照"Tair LDB基于Prefixkey的范围查找性能优化项目提议方案"的步骤一步步完毕的,首先先介绍第一个关 ...

  4. windows+php5.5+apache2.4+tomcat+mod_jk配置

    原因: 通常情况下apache执行的是80port,比方apache启动后执行localhost:80就能够出现It works页面,这里的80也能够不写,会默认的.而tomcat启动时默认的port ...

  5. 数据传输对象(DTO)介绍及各类型实体比较

    数据传输对象(DTO)介绍及各类型实体比较 本文将介绍DDD分层架构中广泛使用的数据传输对象Dto,并且与领域实体Entity,查询实体QueryObject,视图实体ViewModel等几种实体进行 ...

  6. 深入理解C指针之四:指针和数组

    原文:深入理解C指针之四:指针和数组 数组是C内建的基本数据结构,数组表示法和指针表示法紧密关联.一种常见的错误认识是数组和指针完全可以互换,尽管数组名字有时可以当做指针来用,但数组的名字不是指针.数 ...

  7. Swift入门教程:基本语法(三)

    打印输出 Swift提供了2个打印输出函数 println :输出内容后会自动换行 print :对比println,少了个自动换行的功能 示例 输出字符串 println("欢迎学习传智播 ...

  8. View中的Razor使用

    View中的Razor使用   上一节:ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework 源码下载:点我下载 一.Razor简介 在解决方案资源管理 ...

  9. Pythonic论坛怪怪的’居民’显示[已解决]

    之前使用Pythonic搭建的论坛people界面显示有点问题 第一个用户不显示,问了下作者,作者回复说这个Link只有~/people/而没有用户名 就点到为止了. 按说我使用syncdb同步时注册 ...

  10. [译]Java 垃圾回收的监控和分析

    说明:这篇文章来翻译来自于Javapapers 的Java Garbage Collection Monitoring and Analysi 在这个系列的Java垃圾回收教程中,我们将看到可用于垃圾 ...