Asp.Net使用存储过程插入值 [英] Asp.Net Inserted value using stored procedure

查看:71
本文介绍了Asp.Net使用存储过程插入值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

DataBase:

DataBase:

ALTER procedure [dbo].[sp_emp_dept_exam]
(
	@empno int=0,
	@ename nvarchar(50)=null,
	@sal nvarchar(50)=null,
	@deptno int=0,
	@dname nvarchar(50)=null,
	@opr int=0
)
as 
begin
	if @opr=1
	begin
		Insert into emp_exam(ename,sal,deptno)values(@ename,@sal,@deptno)
	end
	else if @opr=2
	begin
		SELECT dname,deptno FROM dept_exam
	end
	else if @opr=3
	begin		
		select ename,dname,sal from emp_exam e inner join dept_exam d on e.deptno=d.deptno
	end
	
end



//代码背后:


//Code Behind:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;

namespace DemoExample
{
    public partial class test_exam : System.Web.UI.Page
    {   
        SqlCommand cmd;
        SqlDataReader dr;
        SqlDataAdapter da;
        DataSet ds=new DataSet();
        SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["connstring2"].ToString());
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                cmd = new SqlCommand("sp_emp_dept_exam", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("@opr", SqlDbType.Int).Value = 2;
                //con.Open();
                da = new SqlDataAdapter(cmd);
                da.Fill(ds);
                ddldname.DataTextField = "dname";
                ddldname.DataValueField = "deptno";
                ddldname.DataSource = ds;
                ddldname.DataBind();
               // con.Close();
            }
        }

        protected void btnsave_Click(object sender, EventArgs e)
        {            
            //cmd = new SqlCommand("Insert into emp_exam(ename,sal)values(@ename,@sal)", con);
            //cmd.Parameters.Add("@ename", txtename.Text);
            //cmd.Parameters.Add("@sal", txtsal.Text);
            //cmd.Parameters.Add("@deptno", ddldname.SelectedValue);

            cmd = new SqlCommand("sp_emp_dept_exam", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("ename", SqlDbType.NVarChar, 50).Value= txtename.Text;
            cmd.Parameters.Add("@sal", SqlDbType.NVarChar, 50).Value = txtsal.Text;
            cmd.Parameters.Add("@deptno", SqlDbType.Int).Value = ddldname.SelectedValue;
            cmd.Parameters.Add("@opr", SqlDbType.Int).Value = 1;
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
            lblmsg.Text = "Record Successfully Inserted";
            txtename.Text = txtsal.Text = "";
            cmd.Parameters.Clear();           

            cmd.Parameters.Clear();
            cmd.Parameters.Add("@opr", SqlDbType.Int).Value = 3;            
            con.Open();
            //dr=cmd.ExecuteReader();
            //gvexam.DataSource = dr;
            da = new SqlDataAdapter(cmd);
            da.Fill(ds);
            gvexam.DataSource = ds;
            
            gvexam.DataBind();
            con.Close();
        }
    }
}

推荐答案

您好,

如果你在插入数据时遇到错误,那么这一行可能会低于错误。

cmd.Parameters.Add(ename,SqlDbType.NVarChar,50).Value = txtename.Text;

'@'在ename pamperer中缺失。应该是@ename not ename。







谢谢
Hello,
If you getting Error in insertion of data then might be below error in this line.
cmd.Parameters.Add("ename", SqlDbType.NVarChar, 50).Value= txtename.Text;
'@' is missing in ename pamperer.there should be @ename not ename.



thanks


这篇关于Asp.Net使用存储过程插入值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆