.查询方面
(查询所有数据记录[dataset读取方法])
Myuser.Query().ExecuteDataSet().Tables[];
Myuser.Query().ExecuteDataSet(); (返回关联查询[dataset读取方法])
Myuser.Query().ExecuteDataSet().Tables[];
Myuser.Query().ExecuteDataSet() (返回所有的查询记录[DataReader读取方法])
List<Myuser> myu =new List<Myuser>();
IDataReader ida = Myuser.Query().ExecuteReader();
while (ida.Read())
{
Myuser myuser = new Myuser();
myuser.Userid = int.Parse(ida.GetValue().ToString());
myuser.Username = ida.GetValue().ToString();
myuser.Userpassword = ida.GetValue().ToString();
myuser.Usersex = ida.GetValue().ToString();
myu.Add(myuser);
}
GridView1.DataSource = myu;
GridView1.DataBind(); (返回所有的查询记录[dataReader读取方式])
IDataReader ida = Myuser.FetchAll();
while (ida.Read())
{
Myuser myuser = new Myuser();
myuser.Userid = int.Parse(ida.GetValue().ToString());
myuser.Username = ida.GetValue().ToString();
myuser.Userpassword = ida.GetValue().ToString();
myuser.Usersex = ida.GetValue().ToString();
myu.Add(myuser);
}
GridView1.DataSource = myu;
GridView1.DataBind(); (带有返回排序完毕的查询记录[dataReader读取方式])
IDataReader ida = Myuser.FetchAll(OrderBy.Desc("usersex"));
IDataReader ida = Myuser.FetchAll(OrderBy.Asc("usersex")); (根据ID返回其查询的记录)
Myuser.FetchByID().Username.ToString(); (根据查询条件返回查询数据记录)
IDataReader ida=Myuser.FetchByParameter("username", "张山"); (查询所有数据记录[dataReader方式])
Query q = new Query("Myusers");
IDataReader ida=Myuser.FetchByQuery(q);
while (ida.Read())
{
Myuser myuser = new Myuser();
myuser.Userid = int.Parse(ida.GetValue().ToString());
myuser.Username = ida.GetValue().ToString();
myuser.Userpassword = ida.GetValue().ToString();
myuser.Usersex = ida.GetValue().ToString();
myu.Add(myuser);
}
GridView1.DataSource = myu;
GridView1.DataBind(); (查询所有的数据记录[dataReader方式])
Myuser u=new Myuser();
IDataReader ida = Myuser.Find(u);
while (ida.Read())
{
Myuser myuser = new Myuser();
myuser.Userid = int.Parse(ida.GetValue().ToString());
myuser.Username = ida.GetValue().ToString();
myuser.Userpassword = ida.GetValue().ToString();
myuser.Usersex = ida.GetValue().ToString();
myu.Add(myuser);
}
GridView1.DataSource = myu;
GridView1.DataBind();
(可排序查询所有的数据记录[dataReader方式])
Myuser u=new Myuser();
IDataReader ida = Myuser.Find(u,OrderBy.Asc("username")); (查询获取listitem列表[可以于填充下拉框])
ListItemCollection lic=Myuser.GetListItems();--默认获取除掉id的第一列的值
ListItemCollection lic=Myuser.GetListItems();--可指定获取列
foreach(ListItem li in lic)
{
Response.Write(li.Value); }
(获取表的结构)
Myuser.Schema
--进行表的列的添加、删除、判断是否有主键、外键、等 (返回查询的对象)
Myuser.Query().ExecuteScalar(); (可利用sql语句查询)
IDataReader ida = newQuery(Myuser.Schema).WHERE("userid=5").ExecuteReader(); (可以用字符串直接写表名或者视图名)
IDataReader rdr = newQuery("Products").WHERE("ProductID",).ExecuteReader();
IDataReader rdr = newQuery("Products").BETWEEN_AND("DateExpires",DateTime.Now,DateTime.Now.AddDays().ExecuteReader(); (也可以用SubSonic定义好的结构来表示表名或视图名)
IDataReader rdr = newQuery(Tables.Products).AddWhere(Product.Columns.ProductID,).ExecuteReader(); (查询出特定条数的结果可以用Top关键字,也可以查询指定的字段)
Query qry = new Query(Tables.Products);--指定表名
qry.Top = "";--前n条查询
qry.SelectList =Product.Columns.ProductName+","+Product.Columns.UnitPrice;--获取指定的列名字段
qry.OrderBy =OrderBy.Desc(Product.Columns.UnitPrice);--进行指定列名排序 (支持分页查询)
Query qry = new Query(Tables.Products);--指定表名
qry.PageSize = ;--当前页面显示的数据记录数
qry.PageIndex = ;--指定的当前页面 (对于多个表的连接查询,建议使用视图实现,查询条件的复合,如用OR或者IN,可以这样查)
IDataReader rdr = newQuery("Products").WHERE("CategoryID=5").AND("UnitPrice>10").OR("CategoryID=1").And("UnitPrice>10").ExecuteReader(); (对于IN条件查询,提供了三种参数类型:ListItemCollection,ArrayList,objectarray)
//////////////////////////////////////arraylist方法
ArrayList list = new ArrayList();
for(int i =;i<=;i++)
list.Add(i);
IDataReader rdr = newQuery("products").IN("ProductID",list).ExecuteReader(); /////////////////////////////////////object[]
IDataReader rdr = new Query("products").IN("ProductID",newobject[]{,,,,}).ExecuteReader(); /////////////////////////////////////listitemcollection
ListItemCollection coll = new ListItemCollection();
for (int i =;i<=;i++)
ListItem item = newListItem(i.ToString(),i.ToString());
item.Selected = true;
coll.Add(item);
IDataReader rdr = newQuery("products").IN("ProductID",coll).ExecuteReader(); (执行纯SQL语句的查询方法)
QueryCommand qcmd = new QueryCommand("select *from Myusers");
DataSet ds=DataService.GetDataSet(qcmd);
GridView1.DataSource = ds;
GridView1.DataBind();
/////////////////////////////////////////////
QueryCommand qcmd = newQueryCommand(Myuser.Query().GetSql());
DataSet ds=DataService.GetDataSet(qcmd);
GridView1.DataSource = ds;
GridView1.DataBind();
(获取当前的query的执行语句)
Myuser.Query().GetSql() (sql语句拼接查询)
string sql = "";
Query q = new Query("vwProduct");
q.AddWhere("productID",productID);
sql = q.GetSql()+"\r\n";
q = new Query(Commerce.Common.Image.GetTableSchema());
q.AddWhere("productID",productID);
q.OrderBy = OrderBy.Asc("listOrder");
sql += q.GetSql()+"\r\n";
....
QueryCommand cmd = new QueryCommand(sql);
cmd.AddParameter("@productID",productID,DbType.Int32);
DataSet ds = DataService.GetDataSet(cmd); (查询统计结果)
SubSonic.Where w = new SubSonic.Where();
w.ColumnName = "CategoryID";
w.ParameterValue = "";
Query.GetCount("products","productID",w);
上面的where条件是可选的,也可以直接根据表名和列名统计,象上面的最后一句那样。除了GetCount()方法以外,还有GetAverage()、GetSum()等方法,用法类似。 (函数查询)
SubSonic.Where where = new Where();
where.ColumnName = "userid";
where.ParameterValue = "";
Response.Write(Myuser.Query().GetCount("userid",where));
Myuser.Query().GetCount("userid",where)--查询当前数的数据记录数相当于count(列名)+where条件
Myuser.Query().GetAverage("userid",where)--查询当前数据的平均值相当于avg(列名)+where条件
Myuser.Query().GetSum("userid",where)--查询当前数据总和相当于sum(列名)+where条件
Myuser.Query().GetMax("userid",where)--查询当前数据的最大值相当于max(列名)+where条件
Myuser.Query().GetMin("userid",where)--查询当前数据的最小值相当于min(列名)+where条件
-------where可加可不加 (多种查询条件约定查询)
GridView1.DataSource=Myuser.Query().WHERE("userid",Comparison.LessOrEquals, ).ExecuteDataSet();
GridView1.DataSource=Myuser.Query().WHERE("列名", 约束条件,约束数值).ExecuteDataSet();
Comparison.LessOrEquals--小于或等于
Comparison.LessThan--小于
Comparison.BetweenAnd--等于
Comparison.Blank--填充为空白的
Comparison.OpenParentheses--打开括号【我认为是添加"("】
Comparison.CloseParentheses--关闭括号???【我认为是添加")"】
Comparison.Equals--字符串之间的对比相当于等于
Comparison.NotEquals--查询不相等的数据
Comparison.GreaterOrEquals--大于等于
Comparison.GreaterThan--大于
Comparison.In--在范围内取值
Comparison.Is--是否等于
Comparison.IsNot--在范围外取值
Comparison.Like--查询相似的数据
Comparison.NotLike--查询不相似的数据 (创建一个commd查询的连接对象)
Myuser.Query().BuildSelectCommand()相当于QueryCommand qcmd = newQueryCommand(Myuser.Query().GetSql()); (通过Query查询所有数据)
QueryCommand qcmd = Myuser.Query().BuildSelectCommand();
DataSet ds = DataService.GetDataSet(qcmd);
GridView1.DataSource = ds;
GridView1.DataBind();
(去重复查询)
DISTINCT() (查询指定值在表中的出现的次数)
Response.Write(Myuser.Destroy("usersex","男")); (between and使用查询方法)
GridView1.DataSource=Myuser.Query().BETWEEN_VALUES("userid", ,).ExecuteDataSet();
GridView1.DataBind(); ---------------------------------------------------------------------------------------------------------------------------------------------
.添加方面
方法一:
Myuser.Insert(txtusername.Text, txtuserpassword.Text,txtusersex.Text); 方法二:
Myuser myuser = new Myuser();
myuser.Username = txtusername.Text;
myuser.Userpassword = txtuserpassword.Text;
myuser.Usersex = txtusersex.Text;
myuser.Save(); 方法三:
int i = new Insert().Into(Myuser.Schema, "username","userpassword", "usersex").Values(TextBox1.Text, TextBox2.Text,TextBox3.Text).Execute(); //方法四
Myuser my = new Myuser();
my.SetColumnValue("username", TextBox1.Text);
my.SetColumnValue("userpassword", TextBox2.Text);
my.SetColumnValue("usersex", TextBox3.Text);
my.Save();
Response.Write("<scriptlanguage=javascript>alert('数据添加成功!');location='datashow.aspx'</script>"); //方法五
Insert MyuserInsert = new Insert(Myuser.Schema.TableName);
intresult=MyuserInsert.Into(Myuser.Schema,Myuser.UsernameColumn.ColumnName,Myuser.UserpasswordColumn.ColumnName,Myuser.UsersexColumn.ColumnName).Values(TextBox1.Text,TextBox2.Text, TextBox3.Text).Execute();
if (result > )
{
ClientScript.RegisterStartupScript(this.GetType(), "alert","<script>alert('数据添加成功!');location='datashow.aspx'</script>)");
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "alert","<script>alert('数据添加失败!')</script>)");
}
//方法六
QueryCommand qcmd = new QueryCommand(sql);
int res=DataService.ExecuteQuery(qcmd); .修改方面
//方法一
//Myuser my = new Myuser(userid);
//my.Username = username;
//my.Userpassword = userpassword;
//my.Usersex = usersex;
//my.Save(); //方法二
//Query q = Myuser.Query();
//q.AddWhere("userid",userid);
//q.AddUpdateSetting("username", username);
//q.AddUpdateSetting("userpassword", userpassword);
//q.AddUpdateSetting("usersex", usersex);
//q.QueryType=QueryType.Update;
//q.Execute();
//Response.Write("<script>alert('"+q.GetRecordCount().ToString()+"')<script/>"); //方法三
//int res = newUpdate(Myuser.Schema).Set(Myuser.UsernameColumn).EqualTo(username).Set(Myuser.UserpasswordColumn).EqualTo(userpassword).Set(Myuser.UsersexColumn).EqualTo(usersex).Where(Myuser.UseridColumn).IsEqualTo(userid).Execute();
//if (res > 0)
//{
// // Response.Write("<script>alert('数据修改成功')</script>");
// ClientScript.RegisterStartupScript(this.GetType(),"alert","<script>alert('数据修改成功')</script>"); //}
//else
//{
// //Response.Write("<script>alert('数据修改失败')</script>");
// ClientScript.RegisterStartupScript(this.GetType(), "alert","<script>alert('数据修改失败')</script>");
//} //方法四
//Myuser my = new Myuser(userid);
//my.SetColumnValue("username", username);
//my.SetColumnValue("userpassword", userpassword);
//my.SetColumnValue("usersex", usersex);
//my.Save(); //方法五
Update MyuserUpdate = new Update(Myuser.Schema.TableName);
MyuserUpdate.From(Myuser.Schema.TableName);
MyuserUpdate.Where("userid").IsEqualTo(userid);
MyuserUpdate.Set("username").EqualTo(username);
MyuserUpdate.Set("userpassword").EqualTo(userpassword);
MyuserUpdate.Set("usersex").EqualTo(usersex);
int result = MyuserUpdate.Execute();
if (result > )
{
ClientScript.RegisterStartupScript(this.GetType(), "alert","<script>alert('数据修改成功')</script>");
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "alert","<script>alert('数据修改失败')</script>");
}
//方法六
QueryCommand qcmd = new QueryCommand(sql);
int res=DataService.ExecuteQuery(qcmd); .删除方面 //删除的id
String id = GridView1.DataKeys[e.RowIndex].Value.ToString();
//int res = db.deldb(int.Parse(id));
//方法一
//Myuser.Delete(id); //方法二
Query q = Myuser.Query();
//q.AddWhere("userid", id);
//q.QueryType = QueryType.Delete;
//q.Execute(); //方法三
int res = newDelete(Myuser.Schema).Where("userid").IsEqualTo(id).Execute();
if (res > )
{
ClientScript.RegisterStartupScript(this.GetType(), "alert","<script>alert('数据已经成功删除')</script>");
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "alert","<script>alert('数据删除失败')</script>");
} //方法四
int result = newDelete().From<Myuser>().Where(Myuser.UseridColumn).IsEqualTo(id).Execute();
if (result > )
{
ClientScript.RegisterStartupScript(this.GetType(), "alert","<script>alert('数据已经成功删除')</script>");
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "alert","<script>alert('数据删除失败')</script>");
} //方法五
Delete MyuserDelete = new Delete();
MyuserDelete.From(Myuser.Schema.TableName);
MyuserDelete.Where("userid").IsEqualTo(id);
int result=MyuserDelete.Execute();
if (result > )
{
ClientScript.RegisterStartupScript(this.GetType(), "alert","<script>alert('数据已经成功删除')</script>"); }
else
{
ClientScript.RegisterStartupScript(this.GetType(), "alert","<script>alert('数据删除失败')</script>");
}
//方法六
QueryCommand qcmd = new QueryCommand(sql);
int res=DataService.ExecuteQuery(qcmd);
--------------------------------------------------------------------------------------------------------------------------------------------- //执行存储过程
StoredProcedure sps = newStoredProcedure("Pro_CheckoutCatid");//存储名 sps.Command.AddParameter("@UserCa

Subsonic简单的语法整理的更多相关文章

  1. Markdown 语法整理

    Markdown 语法整理 白宁超 2015年7月24日14:57:49 一.字体设置 A First Level Header == A Second Level Header -- # 标题 ## ...

  2. MSSQL row_number简单使用语法

    MSSQL row_number简单使用语法 select * from ( select row_number() over(partition by threadid order by date ...

  3. JQuery插件之【jqGrid】常用语法整理

    jqGrid常用语法整理,包含数据获取.常用函数.触发事件等 jqGrid表格数据获取相关语法 获取表格所有数据 $("#grid").jqGrid("getRowDat ...

  4. Markdown语法整理

    标题 语法格式:'#'+'空格'+'文本',一共6级 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 斜体 语法格式:1个星号包裹,我 ...

  5. JS高级---原型的简单的语法

    原型的简单的语法 构造函数,通过原型添加方法,以下语法,手动修改构造器的指向 实例化对象,并初始化,调用方法 <!DOCTYPE html> <html lang="en& ...

  6. sudo简单命令语法及配置

    参考:http://yangrong.blog.51cto.com/6945369/1289452, https://wiki.archlinux.org/index.php/Sudo_(%E7%AE ...

  7. 简单bat语法

    一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置. 语法 echo [{on off}] [message] ...

  8. js基础 1.简单js 语法 关键字 保留字 变量

    简单js JavaScript 是一个松散性的语言 对象属性却不想c中的结构体或者c++ 和java的对象, 对象继承机制 使用原型的prototype(原型链),js的分为三部分ECMAScript ...

  9. SQL_Server 常用语句以及语法整理

    下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE, ...

随机推荐

  1. wordpress 函数、条件判断以及文件的总结

    WordPress基本模板文件 一套完整的WordPress模板应至少具有如下文件: style.css : CSS(样式表)文件 index.php : 主页模板 archive.php : Arc ...

  2. [NHibernate]Parent/Child

    系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate ...

  3. shell中的条件判断、参数以及变量替换

    文章转自: http://www.cnblogs.com/maxupeng/archive/2011/07/02/2096551.html 一.test命令 test命令是shell内部命令,它计算作 ...

  4. Ubuntu12.04安装lnmp环境笔记

    说明:笔记中使用的命令都是在root账户权限下执行的,如果使用的是普通账户,请注意在命令前加上“sudo”指令. 1.更新apt-get软件库: 命令:apt-get update 该操作的目的是确保 ...

  5. Windows下图文详解PHP三种运行方式(php_mod、cgi、fastcgi)

    PHP能不能成功的在Apache服务器上运行,就看我们如何去配置PHP的运行方式.PHP运行目前为止主要有三种方式: a.以模块加载的方式运行,初学者可能不容易理解,其实就是将PHP集成到Apache ...

  6. Linux如何下解压windows下的.zip和.rar文件

    Linux自带的unzip命令可以解压windows下的zip格式的压缩文件. 如何unzip没安装,可以yum 安装下: yum -y install unzip unzip命令 语法:unzip ...

  7. JDK source 之 ArrayList 需要注意事项

    线程安全 ArrayList内部没有实现原子性操作,所以是非线程安全的.如果需要在线程安全的环境下使用List的话,需要使用Vector 或者CopyOnWriteArrayList,具体场景,自行深 ...

  8. MySQL 视图

    一.视图是一种虚拟存在的表,并不在数据库中实际存在.数据来自于视频中查询使用的表,在使用视图时动态生成的. 二.视图的优势: (A) 简单:已经是过滤好的复合条件的结果集 (B) 安全:表的权限不能限 ...

  9. mysql取前取后

    SELECT * FROM (SELECT * FROM 表 WHERE id<居中的ID ORDER BY id DESC LIMIT 5) as A UNION all SELECT * F ...

  10. JavaScript创建对象及对象继承

    面向对象的语言有一个标志,那就是他们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是在ECMAScript中没有类的概念,因此它的对象也与基于类的对象有所不同.实际上,JavaSc ...