首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求一段传递参数代码,还望大家不吝赐教.该怎么解决

2012-01-09 
求一段传递参数代码,还望大家不吝赐教.目的是实现在添加新闻成功后,把刚才添加成功后的新闻的ID传到下一个

求一段传递参数代码,还望大家不吝赐教.
目的是实现在添加新闻成功后,把刚才添加成功后的新闻的ID传到下一个页,让接受页以这个ID为条件把详细内容都查询出来.

数据库:
create   database   NewsTest
use   NewsTest
create   table   News
(
NewsID   int   identity(1,1)   primary   key,
NewTitle   varchar(100)   not   null,
NewsMaster   varchar(500)   not   null,
)

数据库连接类:DB.cs
using   System;
using   System.Data;
using   System.Configuration;
using   System.Web;
using   System.Web.Security;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.WebControls.WebParts;
using   System.Web.UI.HtmlControls;

///   <summary>
///   DB   的摘要说明
///   </summary>
public   class   DB
{
public   DB()
{
//
//   TODO:   在此处添加构造函数逻辑
//
}
        public   static   System.Data.SqlClient.SqlConnection   createCon()
        {
                return   new   System.Data.SqlClient.SqlConnection( "server=.;database=NewsTest;uid=sa;pwd=123; ");
        }
}

定义要添加的类:type.cs
using   System;
using   System.Data;
using   System.Configuration;
using   System.Web;
using   System.Web.Security;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.WebControls.WebParts;
using   System.Web.UI.HtmlControls;

///   <summary>
///   type   的摘要说明
///   </summary>
public   class   type
{
        public   string   NewsTitle;
        public   string   NewsMaster;
public   type()
{
//
//   TODO:   在此处添加构造函数逻辑
//
}
}

添加类:ADD.cs
using   System;
using   System.Data;
using   System.Configuration;
using   System.Web;
using   System.Web.Security;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.WebControls.WebParts;
using   System.Web.UI.HtmlControls;
using   System.Data.SqlClient;

///   <summary>
///   ADD   的摘要说明
///   </summary>
public   class   ADD
{
public   ADD()
{
//
//   TODO:   在此处添加构造函数逻辑
//
}
        public   static   bool   insertOperate(type   t)
        {
                try
                {
                        SqlConnection   con   =   DB.createCon();
                        con.Open();
                        SqlCommand   cmd   =   new   SqlCommand( "insert   into   News   values(@NewsTitle,@NewsMaster) ",   con);
                        SqlParameter   para   =   new   SqlParameter( "@NewsTitle ",   SqlDbType.VarChar,   100);


                        para.Value   =   t.NewsTitle;
                        cmd.Parameters.Add(para);
                        para   =   new   SqlParameter( "@NewsMaster ",   SqlDbType.VarChar,   500);
                        para.Value   =   t.NewsMaster;
                        cmd.Parameters.Add(para);
                        cmd.ExecuteNonQuery();
                        return   true;
                }
                catch   (Exception   e)
                {
                        return   false;
                }
        }
}


新闻添加页:Response.aspx
后台代码:Response.aspx.cs
using   System;
using   System.Data;
using   System.Configuration;
using   System.Collections;
using   System.Web;
using   System.Web.Security;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.WebControls.WebParts;
using   System.Web.UI.HtmlControls;

public   partial   class   Response   :   System.Web.UI.Page
{
        protected   void   Page_Load(object   sender,   EventArgs   e)
        {

        }
        protected   void   btnADD_Click(object   sender,   EventArgs   e)
        {
                type   t   =   new   type();
                t.NewsTitle=this.TextBox1.Text;
                t.NewsMaster=this.TextBox2.Text;
                if(ADD.insertOperate(t))
                {
                        Response.Redirect( "Request.aspx?NewsID=如何获得添加成功后的NewsID ");
                }
                else
                {
                        Response.Write( "失败! ");
                }
        }
}

添加成功后的接收页:Request.aspx
后台代码:Request.aspx.cs
using   System;
using   System.Data;
using   System.Configuration;
using   System.Collections;
using   System.Web;
using   System.Web.Security;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.WebControls.WebParts;
using   System.Web.UI.HtmlControls;


using   System.Data.SqlClient;

public   partial   class   Request   :   System.Web.UI.Page
{
        protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                string   strID   =   Request.Params[ "NewsID "];
                SqlConnection   con   =   DB.createCon();
                con.Open();
                SqlCommand   cmd   =   new   SqlCommand( "select   *   from   News   where   NewsID= ' "   +   strID   +   " ' ",   con);
                SqlDataReader   sdr   =   cmd.ExecuteReader();
                sdr.Read();
                this.Label1.Text   =   sdr[ "NewsTitle "].ToString();
                this.Label2.Text   =   sdr[ "NewsMaster "].ToString();
                sdr.Close();
        }
}

[解决办法]
数据库存储过程return @@IDENTITY

在C#中得到这个返回值ID

URL传值转到下一页,在业中request.querystring[ "id "]

根据ID去数据库取值
[解决办法]
顶LS
[解决办法]
protected void btnADD_Click(object sender, EventArgs e)
{
type t = new type();
t.NewsTitle=this.TextBox1.Text;
t.NewsMaster=this.TextBox2.Text;
if(ADD.insertOperate(t))
{
//此处连接一次数据库,从NewsTest表中查询Max(NewsID )


Response.Redirect( "Request.aspx?NewsID=如何获得添加成功后的NewsID ");
}
else
{
Response.Write( "失败! ");
}
}

[解决办法]

CREATE PROCEDURE insertOperate

@NewsTitle nvarchar(128),
@NewsMaster nvarchar(200),
@retSortID int output
AS


insert into News(NewsTitle,NewsMaster) values(@NewsTitle,@NewsMaster)
set @retSortID = @@IDENTITY

------------------存储过程
public static bool insertOperate(string NewsTitle,string NewsMaster ,out int retSortID)
{
SqlConnection con = DB.createCon();
con.Open();
SqlCommand cmd = new SqlCommand( "insert into News values

(@NewsTitle,@NewsMaster) ", con);
SqlParameter para = new SqlParameter( "@NewsTitle ", SqlDbType.VarChar, 100);
para.Value = t.NewsTitle;
cmd.Parameters.Add(para);
para = new SqlParameter( "@NewsMaster ", SqlDbType.VarChar, 500);
para.Value = t.NewsMaster;
cmd.Parameters.Add(para);

para = new SqlParameter( "@retSortID ", SqlDbType.int);
parm.Direction = ParameterDirection.Output
cmd.Parameters.Add(para);
retSortID = Convert.ToInt32(parms[3].Value);
cmd.ExecuteNonQuery();
return true
}


-----返回值ID
[解决办法]
帮顶
[解决办法]
现在能够插入数据并返回id的只有通过存储过程来实现的,其他的办法可能你正常使用了不会有问题,但是逻辑都会有问题的;(除非你录入的数据除了id还能够表示唯一的值)

热点排行