首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

去MS server数据库插入一条记录并返回这条记录的ID

2012-09-09 
往MS server数据库插入一条记录并返回这条记录的IDCREATE?procedure?pr_AddProduct(????@ChineseName?nvar

往MS server数据库插入一条记录并返回这条记录的ID

去MS server数据库插入一条记录并返回这条记录的IDCREATE?procedure?pr_AddProduct
去MS server数据库插入一条记录并返回这条记录的ID(
去MS server数据库插入一条记录并返回这条记录的ID????@ChineseName?nvarchar(50),
去MS server数据库插入一条记录并返回这条记录的ID????@EnglishName?nvarchar(50),
去MS server数据库插入一条记录并返回这条记录的ID????@Supplier?text,
去MS server数据库插入一条记录并返回这条记录的ID????@MOQ?float,
去MS server数据库插入一条记录并返回这条记录的ID????@Material?nvarchar(50),
去MS server数据库插入一条记录并返回这条记录的ID????@Size????????float????,
去MS server数据库插入一条记录并返回这条记录的ID????@SGW????????nvarchar(50),
去MS server数据库插入一条记录并返回这条记录的ID????@CategoryID????int????,
去MS server数据库插入一条记录并返回这条记录的ID????@TPI????????text????,
去MS server数据库插入一条记录并返回这条记录的ID????@RSC?decimal
去MS server数据库插入一条记录并返回这条记录的ID)
去MS server数据库插入一条记录并返回这条记录的IDas
去MS server数据库插入一条记录并返回这条记录的ID??Declare?@ProductId?int
去MS server数据库插入一条记录并返回这条记录的IDbegin?transaction
去MS server数据库插入一条记录并返回这条记录的IDinsert?into
去MS server数据库插入一条记录并返回这条记录的IDProduct
去MS server数据库插入一条记录并返回这条记录的ID(
去MS server数据库插入一条记录并返回这条记录的IDChineseName,
去MS server数据库插入一条记录并返回这条记录的IDEnglishName,
去MS server数据库插入一条记录并返回这条记录的IDSupplier,
去MS server数据库插入一条记录并返回这条记录的IDMOQ,
去MS server数据库插入一条记录并返回这条记录的IDMaterial,
去MS server数据库插入一条记录并返回这条记录的IDsize,
去MS server数据库插入一条记录并返回这条记录的IDSGW,
去MS server数据库插入一条记录并返回这条记录的IDCategoryID,
去MS server数据库插入一条记录并返回这条记录的IDTPI,
去MS server数据库插入一条记录并返回这条记录的IDRSC
去MS server数据库插入一条记录并返回这条记录的ID)
去MS server数据库插入一条记录并返回这条记录的IDVALUES
去MS server数据库插入一条记录并返回这条记录的ID(
去MS server数据库插入一条记录并返回这条记录的ID????@ChineseName?,
去MS server数据库插入一条记录并返回这条记录的ID????@EnglishName,
去MS server数据库插入一条记录并返回这条记录的ID????@Supplier?,
去MS server数据库插入一条记录并返回这条记录的ID????@MOQ,
去MS server数据库插入一条记录并返回这条记录的ID????@Material?,
去MS server数据库插入一条记录并返回这条记录的ID????@Size????????,
去MS server数据库插入一条记录并返回这条记录的ID????@SGW????????,
去MS server数据库插入一条记录并返回这条记录的ID????@CategoryID????,
去MS server数据库插入一条记录并返回这条记录的ID????@TPI????????,
去MS server数据库插入一条记录并返回这条记录的ID????@RSC
去MS server数据库插入一条记录并返回这条记录的ID)
去MS server数据库插入一条记录并返回这条记录的IDSelect?@ProductId=@@IDENTITY
去MS server数据库插入一条记录并返回这条记录的IDcommit?transaction
去MS server数据库插入一条记录并返回这条记录的IDreturn?@ProductId
去MS server数据库插入一条记录并返回这条记录的IDGO
去MS server数据库插入一条记录并返回这条记录的ID
去MS server数据库插入一条记录并返回这条记录的ID
去MS server数据库插入一条记录并返回这条记录的ID
去MS server数据库插入一条记录并返回这条记录的ID
去MS server数据库插入一条记录并返回这条记录的ID去MS server数据库插入一条记录并返回这条记录的ID
去MS server数据库插入一条记录并返回这条记录的ID?????public?int?AddProduct(Product?prtd)
去MS server数据库插入一条记录并返回这条记录的ID去MS server数据库插入一条记录并返回这条记录的ID????????...{
去MS server数据库插入一条记录并返回这条记录的ID????????????try
去MS server数据库插入一条记录并返回这条记录的ID去MS server数据库插入一条记录并返回这条记录的ID????????????...{
去MS server数据库插入一条记录并返回这条记录的ID????????????????string?strsql?=?"pr_AddProduct";
去MS server数据库插入一条记录并返回这条记录的ID????????????????SqlParameter[]?sqlParam?=
去MS server数据库插入一条记录并返回这条记录的ID去MS server数据库插入一条记录并返回这条记录的ID????????????????...{
去MS server数据库插入一条记录并返回这条记录的ID????????????????????new?SqlParameter("@ChineseName",SqlDbType.NVarChar),
去MS server数据库插入一条记录并返回这条记录的ID????????????????????new?SqlParameter("@EnglishName",SqlDbType.NVarChar),
去MS server数据库插入一条记录并返回这条记录的ID????????????????????new?SqlParameter("@Supplier",SqlDbType.Text),
去MS server数据库插入一条记录并返回这条记录的ID????????????????????new?SqlParameter("@MOQ",SqlDbType.Float),
去MS server数据库插入一条记录并返回这条记录的ID????????????????????new?SqlParameter("@Material",SqlDbType.NVarChar),
去MS server数据库插入一条记录并返回这条记录的ID????????????????????new?SqlParameter("@size",SqlDbType.Float),
去MS server数据库插入一条记录并返回这条记录的ID????????????????????new?SqlParameter("@SGW",SqlDbType.NVarChar),
去MS server数据库插入一条记录并返回这条记录的ID????????????????????new?SqlParameter("@CategoryID",SqlDbType.Int),
去MS server数据库插入一条记录并返回这条记录的ID????????????????????new?SqlParameter("@TPI",SqlDbType.Text),
去MS server数据库插入一条记录并返回这条记录的ID????????????????????new?SqlParameter("@RSC",SqlDbType.NVarChar),
去MS server数据库插入一条记录并返回这条记录的ID????????????????????new?SqlParameter("@ReturnValue",SqlDbType.Int)
去MS server数据库插入一条记录并返回这条记录的ID????????????????};
去MS server数据库插入一条记录并返回这条记录的ID????????????????sqlParam[0].Value?=?prtd.ChineseName;
去MS server数据库插入一条记录并返回这条记录的ID????????????????sqlParam[1].Value?=?prtd.EnglishName;
去MS server数据库插入一条记录并返回这条记录的ID????????????????sqlParam[2].Value?=?prtd.Supplier;
去MS server数据库插入一条记录并返回这条记录的ID????????????????sqlParam[3].Value?=?prtd.MOQ;
去MS server数据库插入一条记录并返回这条记录的ID????????????????sqlParam[4].Value?=prtd.Material;
去MS server数据库插入一条记录并返回这条记录的ID????????????????sqlParam[5].Value=prtd.Size;
去MS server数据库插入一条记录并返回这条记录的ID????????????????sqlParam[6].Value=prtd.Sgw;
去MS server数据库插入一条记录并返回这条记录的ID????????????????sqlParam[7].Value=prtd.CategoryID;
去MS server数据库插入一条记录并返回这条记录的ID????????????????sqlParam[8].Value?=?prtd.Tpi;
去MS server数据库插入一条记录并返回这条记录的ID????????????????sqlParam[9].Value?=?prtd.Rsc;
去MS server数据库插入一条记录并返回这条记录的ID????????sqlParam[10].Direction=System.Data.ParameterDirection.ReturnValue;
去MS server数据库插入一条记录并返回这条记录的ID????????????????
去MS server数据库插入一条记录并返回这条记录的ID????????SqlHelper.ExecuteNonQuery(SqlHelper.CONNSTR,?CommandType.StoredProcedure,?strsql,?sqlParam);
去MS server数据库插入一条记录并返回这条记录的ID????????return?Convert.ToInt32(sqlParam[10].Value);
去MS server数据库插入一条记录并返回这条记录的ID????????????}
去MS server数据库插入一条记录并返回这条记录的ID????????????catch(Exception?ex)
去MS server数据库插入一条记录并返回这条记录的ID去MS server数据库插入一条记录并返回这条记录的ID????????????...{
去MS server数据库插入一条记录并返回这条记录的ID????????????????throw?ex;
去MS server数据库插入一条记录并返回这条记录的ID????????????}
去MS server数据库插入一条记录并返回这条记录的ID????????}

受启示于上面的代码:

在 public sealed class SqlHelper
??? {

?

?

? public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
??????? {
??????????? int id;
??????????? using (SqlConnection conn = new SqlConnection(_connString))
??????????? {
??????????????? using (SqlCommand cmd = new SqlCommand(cmdText, conn))
??????????????? {
??????????????????? try
??????????????????? {
??????????????????????? // PrepareCommand(cmd, conn,cmdType, cmdText, commandParameters);
??????????????????????? int res;
??????????????????????? if (conn.State != ConnectionState.Open)
??????????????????????????? conn.Open();
??????????????????????? cmd.CommandType = cmdType;
??????????????????????? if (commandParameters != null)
??????????????????????? {
??????????????????????????? cmd.Parameters.AddRange(commandParameters);
??????????????????????? }
??????????????????????? res = cmd.ExecuteNonQuery();
??????????????????????? conn.Close();
??????????????????????? if (res >= 1)
??????????????????????? {
????????????????????????????????????????????????????
??????????????????????????? id = Convert.ToInt32(cmd.Parameters[5].Value);
??????????????????????????????????????????????????????????????????????????? }
??????????????????????? else
??????????????????????? {

?????????????????????????? // MainID = -1;
??????????????????????????? id = -1;
??????????????????????????? return -1;
??????????????????????? }

??????????????????? }
??????????????????? catch (SqlException)
??????????????????? {
??????????????????????? throw;
??????????????????? }

??????????????? }
??????????? }

?

?

??????? }

?

?

}

?

PROCEDURE:

?

CREATE PROCEDURE [dbo].[cor_InsertServerConfig]
?(
?@ServerName varchar(20),
?@ServerIP varchar(20),
?@ServerCategory varchar(25),
?@ServerState? char(1),
?@ServerAbility int
?--@ID? int output
??
?)

AS
?DECLARE @ID INT

BEGIN transaction

?
?
?SET NOCOUNT ON;

??? IF EXISTS? (? SELECT 1 FROM [ServerConfig] WHERE ServerName =? @ServerName)
??? BEGIN
???? --return 0
?SELECT @ID = 0
?END
???
?ELSE
?BEGIN

?

?INSERT INTO [ServerConfig](ServerName,ServerIP,ServerCategory,ServerState,ServerAbility)
?VALUES (@ServerName,@ServerIP,@ServerCategory,@ServerState,@ServerAbility)
?


?--SELECT?ID FROM INSERTED? --C#里'INSERTED'对象名无效
? --SELECT SCOPE_IDENTITY()
?
? set @ID = @@identity

? commit transaction

? ---select @ID?非Output,而是return,用select 即使成功插入返回的也为0?


? return @ID?
?
???
?
END

?

?

DAC:

?

?public static int AddServerConfig(string serverName, string serverIP, string serverCategory, string serverState, int serverAbility)
??????? {
???????????
????????? SqlCommand comm = new SqlCommand("cor_InsertServerConfig");

????????? comm.CommandType = CommandType.StoredProcedure;
?????????
???????????
???????????? SqlParameter [] para = new SqlParameter[6];

??????????? para[0] = new SqlParameter("@ServerName",SqlDbType.NVarChar,20);
??????????? para[0].Value = serverName;
??????????? para[1] = new SqlParameter ("@ServerIP",SqlDbType.VarChar,20);
??????????? para[1].Value = serverIP;?
??????????? para[2] = new SqlParameter("@ServerCategory",SqlDbType.NVarChar,25);
??????????? para[2].Value = serverCategory;
??????????? para[3] = new SqlParameter("@ServerState",SqlDbType.Char,1);
??????????? para[3].Value =?? serverState;
??????????? para[4] = new SqlParameter("@ServerAbility",SqlDbType.Int);
??????????? para[4].Value =? serverAbility;

?????????? // para[5] = new SqlParameter("@ID ",SqlDbType.Int);

??????????
?????????? // para[5].Direction=ParameterDirection.Output;? 注非Output输出的值,而是return的值

??????????? para[5] = new SqlParameter("@ReturnValue", SqlDbType.Int);

????????? //? para[5].Direction = ParameterDirection.ReturnValue;
???????????
??????????? //para[5].Value = Convert.ToInt32(ID);
??????????? para[5].Direction = System.Data.ParameterDirection.ReturnValue;

?

?

??????????
?????????????? SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "cor_InsertServerConfig", para);
?????????????? return Convert.ToInt32(para[5].Value);


??????????

??????? }

?

热点排行