.NET笔记

1. 连接本地数据库的语句 string str_conn = "server=.;database=Employees;Trusted_Connection=SSPI;";

2. 使用DataSet获取数据库返回的数据

string str_conn = "server=.;database=Employees;Trusted_Connection=SSPI;";
            string sql = string.Format(
                    "select * from Admin where LoginID='{0}' and Password='{1}'",
                this.textBoxUser.Text = loginId, this.textBoxPas.Text = loginPwd);
            SqlConnection sqlconn = new SqlConnection(str_conn);
            sqlconn.Open();
            SqlDataAdapter sda = new SqlDataAdapter(sql,str_conn);
            DataSet ds1 = new DataSet();


            sda.Fill(ds1);
            int count = ds1.Tables[0].Rows.Count;

创建存储过程:

CREATE PROC[EDURE] 存储过程名
              @参数数据类型 =默认值OUTPUT,
               …… ,
              @参数数据类型 =默认值 OUTPUT
            AS
            SQL语句
    GO

T-sql
DECLARE  @变量名  数据类型

SET @变量名=值

      SELECT  @变量名= 值

IF (条件)

  BEGIN

    语句1

    语句2

    ……

  END

ELSE

 BEGIN

    语句1;

    语句2;

    ……

 END

WHILE (条件)

  BEGIN

    语句1

    语句2

    ……

    BREAK

  END


触发器:

CREATE TRIGGER trigger_name

 ON table_name

 [WITH ENCRYPTION]

  FOR [DELETE,INSERT, UPDATE]

 AS

  T-SQL语句

GO

实例:

CREATE TRIGGER trig_transInfo

 ON transInfo

  FOR INSERT

   AS

   DECLARE @type char(4),@outMoney MONEY

   DECLARE @myCardIDchar(10),@balance MONEY

   SELECT @type=transType,@outMoney=transMoney,

         @myCardID=cardIDFROM inserted

     IF (@type='支取')

        UPDATE bank SET currentMoney=currentMoney-@outMoney

             WHERE cardID=@myCardID

    ELSE

        UPDATE bank SET currentMoney=currentMoney+@outMoney

             WHERE cardID=@myCardID

    …..

GO


事务:

BEGIN TRANSACTION

/*--定义变量,用于累计事务执行过程中的错误--*/

DECLARE @errorSum INT

SET @errorSum=0 --初始化为0,即无错误

/*--转帐:张三的帐户少1000元,李四的帐户多1000元*/

UPDATE bank SET currentMoney=currentMoney-1000

   WHERE customerName='张三'

SET @errorSum=@errorSum+@@error

UPDATE bank SET currentMoney=currentMoney+1000

   WHERE customerName='李四'

SET @errorSum=@errorSum+@@error  --累计是否有错误

IF @errorSum<>0  --如果有错误

  BEGIN

    print '交易失败,回滚事务'

   ROLLBACK TRANSACTION

  END 

ELSE

  BEGIN

    print '交易成功,提交事务,写入硬盘,永久的保存'

    COMMITTRANSACTION  

  END

GO

print '查看转帐事务后的余额'

SELECT * FROMbank 

GO 


游标:

l使用DECLARE CURSOR 语句将 Transact-SQL 游标与 SELECT 语句相关联。
l另外,DECLARE CURSOR 语句还定义游标的特性,例如游标名称以及游标是只读还是只进。
l声明游标
lDECLARE cursor_name CURSOR
l  FORSELECT … FROM table  WHERE 。。。
l打开游标
lOPEN cursor_name
l读取结果集数据
lFETCH NEXT FROM cursor_name
l根据@@FETCH_STATUS来确定是否继续读取数据
lWHILE @@FETCH_STATUS = 0
lBEGIN
l    T-SQL语句
l    FETCH NEXT FROM cursor_name
lEND
l关闭游标
lClose cursor_name
l删除游标
lDEALLOCATE cursor_name

DataReader类:

需要永久连接
只读和只进访问
Read方法使Reader前进到下一个记录,当有多个结果集时用分号分割各select语句,并使用NextResult方法访问下一个结果集,这样可节省与数据库的链接次数。
执行给定查询、从数据流中检索行,并将结果集绑定到 DataReader类的给定实例

访问记录中的字段有两种方法:

1Item属性(直接获取索引指定的条目)
2GetXXX方法(该方法根据后缀自动转换类型)如myReader.GetString(1); 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值