向数据库添加数据有三种方法利用 SQL语句添加、通过SqlParameter参数添加和通过存储过程添加。(三)

 

3 .通过存储过程添加

   存储过程可以过滤SQL语句中的非法字符,而且在创建时可直接在服务器上进行编译,所以执行起来比单个SQL语句快。通过存储过程添加数据,可以提高程序的执行效率,而且便于以后的维护。

利用存储过程向数据库添加记录时,首先要创建SqlConnection类的一个对象,用来连接数据库,然后使用SqlCommand对象的CommandType属性指定要执行的SQL文本命令为存储过程,并通过Add方法向SqlParameter中添加参数,最后使用SqlCommand对象的ExecuteNonQuery方法执行数据更新操作。

      本例主要应用存储过程实现向图书信息数据库中添加数据,在页面指定的文本框中输入相关的添加信息,通过【添加】按钮的Click事件中调用存储过程来实现添加操作。
   使用存储过程添加数据之前,首先需要创建存储过程probookinfo,代码如下:

CREATE    PROCEDURE probookinfo
(@BookName     [VarChar](50),
@BookIntroduce    [VarChar](50),
@BookPrice    [Money],
   @BookIsNew   [VarChar](50))
AS INSERT INTO [fangdawei].[dbo].[tb_BookInfo] (
   [BookName],
   [BookIntroduce],
[BookPrice],
   [BookIsNew])
VALUES (
   @BookName,
   @BookIntroduce,
   @BookPrice,
   @BookIsNew)
GO
   程序开发步骤:

 

   (1)新建一个网站,将其命名为Ex19_03,默认主页为Default.aspx

   (2)向Default.aspx页中添加一个Table表格,用于布局页面,然后在Table表格中分别添加一个GridView控件、4TextBox控件和一个Button控件,用来显示添加的结果、输入添加信息和执行添加命令。

   (3)主要程序代码。

   “添加信息”按钮Click事件代码如下:

protected void Button1_Click(object sender, EventArgs e)
     {
         SqlConnection myconn = new SqlConnection("server=(local);Database=fangdawei;Uid=sa;Pwd=");
         //打开链接
         myconn.Open();
         string str = "select count(*) from tb_BookInfo where BookName='" + TextBox1.Text.ToString() + "'";
         //创建SqlCommand对象
         SqlCommand com = new SqlCommand(str,myconn);
         int intcont = Convert.ToInt32(com.ExecuteScalar());
         if (intcont > 0)
         {
             Response.Write("alert('对不起!不允许填写相同记录!')");
         }
         else
         {
             try
             {
                 SqlCommand mycom = new SqlCommand("probookinfo", myconn);
                 //调用存储过程
                 mycom.CommandType = CommandType.StoredProcedure;
                 //添加参数
                 SqlParameter[] prams ={

                            new SqlParameter("@BookName", SqlDbType.VarChar, 50),
                            new SqlParameter("@BookIntroduce", SqlDbType.VarChar, 50),
                            new SqlParameter("@BookPrice", SqlDbType.Money, 8),
                            new SqlParameter("@BookIsNew", SqlDbType.Char, 10),
                                                      
                  };
                 //给参数赋值
                 prams[0].Value = TextBox1.Text;
                 prams[1].Value = TextBox2.Text;
                 prams[2].Value = Convert.ToDecimal(TextBox3.Text);
                 prams[3].Value = DropDownList1.SelectedValue.ToString();
                 foreach (SqlParameter parameter in prams)
                 {
                     mycom.Parameters.Add(parameter);
                 }
                 //执行sql语句
                 mycom.ExecuteNonQuery();
                 myconn.Close();
                 BindData();
                 Response.Write("alert('添加成功!')");
             }
             catch(Exception ex)
             {
                Response.Write(ex.Message.ToString());
             }
         }
   }
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值