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

一个 值获取的有关问题

2011-12-25 
一个 值获取的问题public int insertbook(string bookname,int classid, string author, string publish,

一个 值获取的问题
public int insertbook(string bookname,int classid, string author, string publish, string publishdate, string isbn, string oldprice, string nowprice, string zaiyao, int tuijian, int isonframe, int ischeap)//添加图书
  {
  SqlConnection conn = new SqlConnection(common.Class1.con);
  conn.Open();
  SqlCommand com = new SqlCommand(common.Class1.insertb, conn);
  com.CommandType = CommandType.StoredProcedure;
  com.Parameters.Add("@bookname", SqlDbType.VarChar, 50).Value = bookname;
  com.Parameters.Add("@classid", SqlDbType.Int).Value = classid;
  com.Parameters.Add("@author", SqlDbType.VarChar, 50).Value = author;
  com.Parameters.Add("@publish", SqlDbType.VarChar, 200).Value = publish;
  com.Parameters.Add("@publishdate", SqlDbType.VarChar, 50).Value = publishdate;
  com.Parameters.Add("@isbn", SqlDbType.VarChar, 50).Value = isbn;
  com.Parameters.Add("@oldprice", SqlDbType.VarChar, 50).Value = oldprice;
  com.Parameters.Add("@nowprice", SqlDbType.VarChar, 50).Value = nowprice;
  com.Parameters.Add("@zaiyao", SqlDbType.VarChar, 200).Value = zaiyao;
  com.Parameters.Add("@tuijian", SqlDbType.Int).Value = tuijian;
  com.Parameters.Add("@isonframe", SqlDbType.Int).Value = isonframe;
  com.Parameters.Add("@ischeap", SqlDbType.Int).Value = ischeap;
  com.Parameters.Add("@bid", SqlDbType.Int);
  com.Parameters["@bid"].Direction = ParameterDirection.Output;//我要获取@bid的值啊!怎么写才对啊.以下获取都错了.!  
  SqlDataAdapter da = new SqlDataAdapter();
  da.InsertCommand = com; 
  com.ExecuteNonQuery();
  int temp = Convert.ToInt32(com.ExecuteScalar());
  conn.Close();
  return temp;
  }

存储过程:
CREATE PROCEDURE inserbook
@bookname varchar(50),
@classid int,
@author varchar(50),
@publish varchar(200),
@publishdate varchar(50),
@isbn varchar(50),
@oldprice varchar(50),
@nowprice varchar(50),
@zaiyao varchar(200),
@tuijian int,
@ischeap int,
@isonframe int,
@bid int output

 AS
BEGIN
 set nocount on;
 insert into book (bookname,classid,author,publish,publishdate,isbn,oldprice,nowprice,zaiyao,tuijian,ischeap,isonframe) values (@bookname,@classid,@author,@publish,@publishdate,@isbn,@oldprice,@nowprice,@zaiyao,@tuijian,@ischeap,@isonframe)
select @bid=@@identity //要得是它那个系统自加的IDreturn
END
GO


[解决办法]
int temp = Convert.ToInt32(com.ExecuteScalar()); 

改成int temp=(int)cmdDB.Parameters["@bid"].Value;


C# code
   /// <summary>        /// 记录是否存在        /// </summary>        /// <param name="ItemID">1 baidu知道 2 新闻 3 图片</param>        /// <param name="TypeID">1-1 人 1-2问题  2-1 新闻  3-1 图片</param>        /// <param name="Ident">判断记录的唯一条件比如说网址,姓名</param>        /// <param name="MobileID">请传入当前某个频道循环的PKID</param>        /// <returns></returns>        public static int ExistRows(int ItemID, int TypeID, string Ident, int MobileID)        {            SqlConnection conDB = new SqlConnection(strLinkDB);            conDB.Open();            SqlCommand cmdDB = new SqlCommand("Item_Exist", conDB);            cmdDB.CommandType = CommandType.StoredProcedure;            cmdDB.Parameters.Add("@ItemID", SqlDbType.Int).Value = ItemID;            cmdDB.Parameters.Add("@TypeID", SqlDbType.Int).Value = TypeID;            cmdDB.Parameters.Add("@MobileID", SqlDbType.Int).Value = MobileID;            cmdDB.Parameters.Add("@Ident", SqlDbType.VarChar).Value = Ident;            cmdDB.Parameters.Add("@ReturnValue", SqlDbType.Int).Direction = ParameterDirection.Output;            cmdDB.ExecuteNonQuery();            conDB.Close();            return (int)cmdDB.Parameters["@ReturnValue"].Value;        } 

热点排行