1.ObjStudyStatusTBOp.StudyStatusTBop.LoadBySql(sql,StudyStatusTBDt);
此处这个函数的第二个参数是一个DataTable,为什么没用Ref这个参数,就将从sql语句中取出的记录返回给StudyStatusTBDt了2.在类ObjStudyStatusTBOpk中声明了一个静态变量StudyStatusTBop,它将类ObjStudyStatusTBOp实例并静态化(不知道是不是这样说, 是我自己理解的,正确的说应该是什么?这种方法有什么好处吗,小弟刚接触.net对这种写法非常的陌生,不知道能不能再举个示例,以帮助小弟理解)还请指点
此处这个函数的第二个参数是一个DataTable,为什么没用Ref这个参数,就将从sql语句中取出的记录返回给StudyStatusTBDt了2.在类ObjStudyStatusTBOpk中声明了一个静态变量StudyStatusTBop,它将类ObjStudyStatusTBOp实例并静态化(不知道是不是这样说, 是我自己理解的,正确的说应该是什么?这种方法有什么好处吗,小弟刚接触.net对这种写法非常的陌生,不知道能不能再举个示例,以帮助小弟理解)还请指点
{
try
{
DBbase.thisbase.Connection();string sql="SELECT dbo.StudyStatusTB.*, dbo.StudyStatusClassTB.ClassName AS ClassName, dbo.StudyStatusClassTB.State AS State FROM dbo.StudyStatusTB LEFT OUTER JOIN dbo.StudyStatusClassTB ON dbo.StudyStatusTB.ClassID = dbo.StudyStatusClassTB.ID WHERE (dbo.StudyStatusClassTB.State = 0) order by dbo.StudyStatusTB.SetIsTop DESC ";DataTable StudyStatusTBDt=new DataTable();ObjStudyStatusTBOp.StudyStatusTBop.LoadBySql(sql,StudyStatusTBDt);this.DataGrid1.DataSource=StudyStatusTBDt;
this.DataGrid1.DataBind();this.lblPageCount.Text=this.DataGrid1.PageCount.ToString();this.SetPageButton();}
catch(Exception ee)
{
ObjErr.ShowMessageFrm("读取数据失败!","",ee.Message,null);
}
finally
{
DBbase.thisbase.DisConnection();
}}
{
public ObjStudyStatusTBOp()
{
} public static ObjStudyStatusTBOp StudyStatusTBop=new ObjStudyStatusTBOp(); /// <summary>
/// 读取某条记录(LoadBySql)
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <param name="obj">表</param>
/// <returns></returns>
public bool LoadBySql(string strSql,DataTable DT)
{
bool isExe=false;
DBbase.thisbase.thisCommand.Parameters.Clear();
DBbase.thisbase.thisCommand.CommandText=strSql;
OleDbDataAdapter MyDBAdapter;
try
{
MyDBAdapter=new OleDbDataAdapter(strSql,DBbase.thisbase.thisConn);
MyDBAdapter.Fill(DT);
isExe=true;
}
catch(OleDbException e)
{
isExe=false;
throw new Exception(e.Message);
}
return isExe;
}
}
struct 与 class 的区别,以及他们的内存分配机制.
相当于C里面的funcName(&objectName);