日度归档:2019年8月16日

c# 虚拟一个DataTable 并添加数据的方法分享


摘要:
下文分享c#生成一个DataTable方法,如下所示:

---定义DataTable
    DataTable  tbMaoMao = new DataTable("maomao");
---定义一个数据列,并设置为自增长列

DataColumn tbColumn = null;
tbColumn = tbMaoMao.Columns.Add("keyId", Type.GetType("System.Int32"));
tbColumn.AutoIncrement = true;   //自增加列
tbColumn.AutoIncrementSeed = 1;//起始为1
tbColumn.AutoIncrementStep = 1;//步长为1
tbColumn.AllowDBNull = false; //禁止列值为null



dc = tbMaoMao.Columns.Add("info", Type.GetType("System.String"));     

DataRow tbRow; //定义一行
tbRow = tbMaoMao.NewRow();
tbRow["info"] = "sql爱好者"; 
tbMaoMao.Rows.Add(tbRow);

tbRow = tbMaoMao.NewRow();
tbRow["info"] = "猫猫小屋"; 
tbMaoMao.Rows.Add(tbRow);
----给dataTable添加数据行方法2 

tbMaoMao.Rows.Add(new object[]{null,"sqlserver"});
tbMaoMao.Rows.Add(new object[] { null, "sqlblogs"}); 

mssql sqlserver Rowcount同@@Rowcount关键字简介及区别说明


摘要:
下文讲述mssql sqlserver中rowCount及@@rowcount关键字的说明,如下所示:


sqlserver中这两个关键字看着相同,其实它们所表达的意思完全不同,下面听我一一道来


rowcount关键字说明:

在sqlserver中,我们可以通过设置rowcount属性,限制sqlserver返回相应的行数,如果返回到相应的行之,则sqlserver将返回,终止当前运行。
例:

   set rowcount 8
    select * from [数据表]
   ----以上脚本只会返回前8行数据
 /*
set rowcount 还可以对update delete 限定其处理行
*/
---例 更新符合条件的前8行数据:
    set rowcount 8
    update [数据表]  set [列] =''  where  ...
   set rowcount 0 
   ----以上脚本只会对符合条件的数据前8行进行处理
  ---同理,删除前8行数据
   set rowcount 8
    delete  [数据表]  set [列] =''  where  ...
   set rowcount 0 


set rowcount注意事项:
set rowcount在整个会话中有效,当不需要使用使用时,请使用set rowcount 0 取消其设置


@@Rowcount 关键字说明

@@rowCount 是一个系统全局变量
@@rowCount 里面记载着上一条sql脚本所影响的行数信息
例:

  select top 2 * from [数据表]
  select @@rowCount 
  ---当输出两条数据时,@@rowCount的结果为2

  update   [数据表] set ... where ...
  select @@rowCount   
   ----当对n条数据更新时,@@rowCount的结果为n
 
  ---同理删除数据 @@rowCount也返回一样的说明信息
  delete [数据表] set ... where ...
  select @@rowCount   
   ----当对n条数据删除时,@@rowCount的结果为n
  


set rowcount及@@rowcount关键字的区别:
1.set rowcount 是sqlserver的属性值,当设置此值后,sql脚本当处理行数达到设定值后,则会停止执行
2.@@rowCount返回最近一条sql脚本所影响的数据表行数信息

mssql sqlserver 对”拥有流水号的表”遍历方法分享


摘要:
下文通过举例讲述,sqlserver中对拥有标识列的表循环的方法,如下所示:
实验环境:sqlserver 2008 R2



实现思路:
使用while循环,依次对表每条数据进行循环处理
1.先定义循环起始值
2.然后每次获取大于循环起始值的一条数据,同时将起始值前进至最近的一条数据
3.当无数据时,则终止循环

   create table [maomao365.com]
(keyId int identity,
 info  nvarchar(100)
 )
 go
 
 insert into [maomao365.com](info)values
 (N'sqlblog'), (N'猫猫'), (N'爱好者'),
  (N'循环'), (N'while'), (N'other')
  go

  ---循环开始
  declare @i int 
  set @i =0  ---循环开始位置

  while (@i is not  null)
  begin
      select top 1 @i = min(keyId) from [maomao365.com]
	    where keyId >@i 

      print @i 
  end
  go
  ---循环结束

 go
 truncate table [maomao365.com]
 drop     table [maomao365.com]