ASP.net学习第二,三天总结(调用简单的存储过程)

2005-12-07堕落了!没有学习太多~只是在看没有动手实践,没有什么心得!所以和08号的学习总结一起写!

学习的知识点:

       重点学习了C#.net中对存储过程的简单调用通过三种不同的方法来实现了对存储过程

的调用。还有对创建存储过程有一定的感性认识。

 

 

心得:

创建存储过程:

       只初步了解了下格式和最简单的语法!发现很多需要解决的问题!

调用存储过程:

总体上看三种方法分别运用的类库方法都不太一样。但这三者实质上是共同之处!

       他们都是首先要获得存储过程名,和通知编译器Command.Type类型是存储过程!

然后三者通过自身不同的方法来对SqlParameter进行操作把存储过程的参数传递过去和接受回来!

不足:

Transact-SQL语言陌生!很多的名词术语都没有理解!在调用存储过程传递参数时不知道如何一次传递和接受多个参数~!有待提高

 

 

创建存储过程:

CREATE PROCEDURE dbo.usp_Test

              @ID int,

              @UserName varchar(50) output

as

select @UserName=(select UserName from UserInfo where UserID=@ID)

select UserName from UserInfo where UserID=@ID

GO

 

 

       心得:

       明白了基本的书写格式~

不足:

Transact-SQL语言陌生!不能更深入的写出复杂的存储过程

调用存储过程:

       1."用了SqlDataAdapter的方法直接操作"

         da=new SqlDataAdapter("usp_UserInfo", Conn);

         da.SelectCommand.CommandText="usp_Test";

         da.SelectCommand.CommandType=CommandType.StoredProcedure;

         da.SelectCommand.Parameters.Add(new SqlParameter("@ID",SqlDbType.Int));

da.SelectCommand.Parameters.Add(new SqlParameter("@UserName",SqlDbType.VarChar,50));

         da.SelectCommand.Parameters["@UserName"].Direction =ParameterDirection.Output;

         da.SelectCommand.Parameters["@ID"].Value =1;

         ds=new DataSet();

         da.Fill(ds,"UserInfo");

         this.DataGrid1.DataSource=ds.Tables["UserInfo"];

         this.TextBox2.Text=da.SelectCommand.Parameters["@UserName"].Value.ToString();

         Conn.Close();

             

 

 

 

 

2. "用了SqlDataAdapterSqlParameter联合操作"

         da=new SqlDataAdapter();

         da.SelectCommand=new SqlCommand ();

         da.SelectCommand.Connection= Conn;

         da.SelectCommand.CommandText="usp_Test";

         da.SelectCommand.CommandType=CommandType.StoredProcedure;

         pram=new SqlParameter("@ID",1);

         pram.Direction=ParameterDirection.Input ;

         //pram.Value=Convert.ToInt32(2);

         da.SelectCommand.Parameters.Add(pram);

         pram=new SqlParameter("@UserName",SqlDbType.VarChar,50);

         pram.Direction=ParameterDirection.Output ;

         da.SelectCommand.Parameters.Add(pram);

         ds=new DataSet();

da.Fill(ds,"UserInfo");

         this.DataGrid1.DataSource=ds.Tables["UserInfo"];

         this.TextBox2.Text=da.SelectCommand.Parameters["@UserName"].Value.ToString();

         Conn.Close();

3."SqlCommand操作和SqlParameter联合操作"

cmds=new SqlCommand("usp_Test", Conn);

         cmds.Connection.Open();

         cmds.CommandType=CommandType.StoredProcedure;

         cmds.Parameters.Add("@ID",2);

         pram=cmds.Parameters.Add("@UserName",SqlDbType.VarChar,50);

         pram.Direction=ParameterDirection.Output;

         cmds.ExecuteNonQuery();

         //this.TextBox2.Text=pram.Value.ToString();  此语句与下语句等效

         this.TextBox1.Text=cmds.Parameters["@UserName"].Value.ToString();    

         this.DataGrid1.DataSource=cmds.ExecuteReader();

         this.DataGrid1.DataBind();

心得:

在编程的时候得充分理解语句意思,每写出一条语句一定要有发散思维的能力,比如:

     cmds.Parameters.Add("@ID",2);

cmds.Parameters.Add("@ID",SqlDbType.int)

这两语句的第二个参数有所不同,第一个是给@ID变量赋值,第二个只是说明了@ID变量的类型要赋值需改为:

SqlParameter pram;

pram=cmds.Parameters.Add("@ID",SqlDbType.int)

pram.Value=Convert.ToInt32(2);

这二者之间有何实质的区别有待研究

不足:

感觉自己对SqlDataAdapter ,SqlParameter, SqlCommand, DataSet 这几个的方法属性还是不能灵活运用和对他们深层次的理解!

 

 

总结:

       今天只是对存储过程的一个入门有很多深层实用的东西还没有理解!在实际运用方面还有很大的一定距离!  需要更加的努力~!现在急需解决的问题:

1.对Transact-SQL语言陌生!!!

2SqlDataAdapter ,SqlParameter, SqlCommand, DataSet 这几个的方法属性还是不能灵活运用和对他们深层次的理解!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值