通过存储过程来进行数据绑定

本文介绍如何在ASP.NET中通过存储过程填充下拉列表的数据,并展示了完整的代码实现,包括数据库连接、参数设置及异常处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在.aspx页面有一个下拉列表,命名为:TypeID,他所使用表为AssetType表,

存储过程的编写: set ANSI_NULLS ONset QUOTED_IDENTIFIER ON

go

 create PROCEDURE [dbo].[PR_SelectAssetType] 

@ID INT='', @TypeName VARCHAR(50)='', @Error VARCHAR(500)='' OUTPUT

AS

IF @ID<>'' 

SELECT * FROM AssetType WHERE [ID]=@IDELSEBEGIN IF @TypeName<>''  

SELECT * FROM AssetType WHERE [TypeName] LIKE '%'+@TypeName+'%' 

ELSE  SELECT * FROM AssetTypeENDRETURN @@ROWCOUNTIF(@@ERROR<>0) SET @Error=@@ERROR

相应的.CS页面代码:

      DataBase conn = new DataBase();//已经编写好的数据库链接类     

 protected void Page_Load(object sender, System.EventArgs e)      

   {

            TypeID.DataTextField = "TypeName";//显示的内容          

            TypeID.DataValueField = "ID";//所需要的值            

            string sql = "PR_SelectAssetType";            

             SqlCommand cm = new SqlCommand(sql, conn.cn);       

             cm.CommandType = CommandType.StoredProcedure;

            cm.Parameters.Add("ReturnValue", SqlDbType.Int);         

            cm.Parameters["ReturnValue"].Direction = ParameterDirection.ReturnValue;

            if (cm.Connection.State == ConnectionState.Closed)               

               cm.Connection.Open();            

               try          

              {                

                cm.ExecuteNonQuery();              

               SqlDataAdapter da = new SqlDataAdapter(cm);          

               DataSet ds = new DataSet();             

               da.Fill(ds, "TypeName");                

               DataView dv = new DataView(ds.Tables["TypeName"]);     

               TypeID.DataSource = dv;            

                TypeID.DataBind();         

              }           

               finally          

               {           

                    if (cm.Connection.State == ConnectionState.Open)         

                    cm.Connection.Close();          

                    cm = null;            

                   conn = null;       

              }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值