当 SET NOCOUNT 为 ON 时,不返回计数(表示受Transact-SQL 语句影响的行数)。
当 SET NOCOUNT 为 OFF 时,返回计数。
即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。
当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft® SQL Server™ 提供的实用工具执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示”nn rows affected”。
如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。注释当SET NOCOUNT 为ON 时,不返回计数(表示受Transact-SQL 语句影响的行数)。当SET NOCOUNT 为OFF 时,返回计数。
结论:我们应该在存储过程的头部加上SET NOCOUNT ON 这样的话,在退出存储过程的时候加上SET NOCOUNT OFF这样的话,以达到优化.
源文1:http://blog.163.com/tl_jerome/blog/static/465007142007830114518525/
源文2:http://hi.baidu.com/livbirds/blog/item/72fc7dcb9420aefb53664f4c.html
窗透初晓日照西桥云自摇
想你当年荷风微摆的衣角
木雕流金岁月涟漪七年前封笔
因为我今生挥毫只为你
雨打湿了眼眶年年倚井盼归堂
最怕不觉泪已拆两行
我在人间彷徨寻不到你的天堂
东瓶西镜放恨不能遗忘
又是清明雨上折菊寄到你身旁
把你最爱的歌来轻轻唱
想你在每个夜晚
远方有琴愀然空灵声声催天雨
涓涓心事说给自己听
月影憧憧烟火几重烛花红
红尘旧梦梦断都成空
雨打湿了眼眶年年倚井盼归堂
最怕不觉泪已拆两行
我在人间彷徨寻不到你的天堂
东瓶西镜放恨不能遗忘
又是清明雨上折菊寄到你身旁
把你最爱的歌来轻轻唱
我在人间彷徨寻不到你的天堂
东瓶西镜放恨不能遗忘
又是清明雨上折菊寄到你身旁
把你最爱的歌来轻轻唱
这两天老老大在泰国,我做的POP系统需要让我增加两个功能,其中就用到了在Gridview编辑状态下控件绑定数据库的问题,查询了相关资料后终于搞定了。将主要的代码写在这里,记录一下。
主要就是一个:
e.Row.RowState == DataControlRowState.Edit ||
e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit
我觉得主要是用来判断Gridview的行的状态,之前没有加这个条件,所以一直是没有绑定到对象之类的错误提示。
主要的代码:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//判断是否是DataRow,以防止鼠标经过Header也有效果
if (e.Row.RowType == DataControlRowType.DataRow)
{
//行的状态是: 编辑状态 或者 (交替行且是编辑状态)
if (e.Row.RowState == DataControlRowState.Edit ||
e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit)
)
{
//下面是绑定CheckBoxList,根据Gridview中的显示的值,更改CheckBoxList的选中状态
Label lab = (Label)e.Row.FindControl(“TxtPrinter”);
CheckBoxList chk = (CheckBoxList)e.Row.FindControl(“OperatorList”);
string txtPrinter = lab.Text;
if (txtPrinter != “”)
{
for (int i = 0; i < chk.Items.Count; i++)
{
if (txtPrinter.IndexOf(chk.Items[i].Text.ToString()) >= 0)
{
chk.Items[i].Selected = true;
}
}
}
//下面是绑定DropDownList,根据Gridview Cells中显示的内容查找数据库,如果存在相关信息就显示DropDownList,并绑定
DropDownList printroll = (DropDownList)e.Row.FindControl(“PrintRollList”);
TextBox txt_printroll = ((TextBox)e.Row.FindControl(“txtPrintroll”));
BLL.printroll bll = new BLL.printroll();
string pid = bll.GetID(txt_printroll.Text.Trim());
if (pid == “–”)
{
printroll.Visible = false;
}
else
{
DataTable dt = bll.GetChildList(Convert.ToInt32(pid));
if (dt.Rows.Count != 0)
{
printroll.DataSource = dt;
printroll.DataTextField = dt.Columns["printroll"].ToString();
printroll.DataValueField = dt.Columns["printroll"].ToString();
printroll.DataBind();
printroll.Items.Insert(0, “–PrintRoll–”);
printroll.Items[0].Value = “0″;
printroll.Visible = true;
}
}
}
}
}
今天遇到一个问题,将一个表中的两列(Column A, Column B) 数据合并一列,而且需要将Column B内容接在Column A的后面,感谢下面的博文帮我解决了这个问题,转来和大家一起分享。——Tony Hu
UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。 union只是将两个结果联结起来一起显示,并不是联结两个表…………
假设我们有以下的两个表格
Store_Information 表格
| store_name |
Sales |
Date |
| Los Angeles |
$1500 |
Jan-05-1999 |
| San Diego |
$250 |
Jan-07-1999 |
| Los Angeles |
$300 |
Jan-08-1999 |
| Boston |
$700 |
Jan-08-1999 |
|
Internet Sales 表格
| Date |
Sales |
| Jan-07-1999 |
$250 |
| Jan-10-1999 |
$535 |
| Jan-11-1999 |
$320 |
| Jan-12-1999 |
$750 |
|
而我们要找出来所有有营业额 (sales) 的日子。要达到这个目的,我们用以下的 SQL 语句:
SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales 结果:
| Date |
| Jan-05-1999 |
| Jan-07-1999 |
| Jan-08-1999 |
| Jan-10-1999 |
| Jan-11-1999 |
| Jan-12-1999 |
有一点值得注意的是,如果我们在任何一个 SQL 语句 (或是两句都一起) 用 “SELECT DISTINCT Date” 的话,那我们会得到完全一样的结果。
SQL Union All
UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 UNION ALL 和 UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复。
UNION ALL
我们用和上一页同样的例子来显示出 UNION ALL 和 UNION 的不同。同样假设我们有以下两个表格,
Store_Information 表格
| store_name |
Sales |
Date |
| Los Angeles |
$1500 |
Jan-05-1999 |
| San Diego |
$250 |
Jan-07-1999 |
| Los Angeles |
$300 |
Jan-08-1999 |
| Boston |
$700 |
Jan-08-1999 |
|
Internet Sales 表格
| Date |
Sales |
| Jan-07-1999 |
$250 |
| Jan-10-1999 |
$535 |
| Jan-11-1999 |
$320 |
| Jan-12-1999 |
$750 |
|
而我们要找出有店面营业额以及网络营业额的日子。要达到这个目的,我们用以下的 SQL 语句:
SELECT Date FROM Store_Information
UNION ALL
SELECT Date FROM Internet_Sales 结果:
| Date |
| Jan-05-1999 |
| Jan-07-1999 |
| Jan-08-1999 |
| Jan-08-1999 |
| Jan-07-1999 |
| Jan-10-1999 |
| Jan-11-1999 |
| Jan-12-1999 |
来源:http://brucezheng.javaeye.com/blog/70300
最新评论