public static int ExecProcedurei(string ProcedureName, string[] VariableName, object[] Values)
{
int number = 0;
try
{
SqlCommand cmd = new SqlCommand(ProcedureName, conn);
for (int i = 0; i < VariableName.Length; i++)
{ cmd.Parameters.Add("@" + VariableName[i], Values[i]);
} Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
number =(int) cmd.Parameters["@pkid"].Value;
cmd.Parameters.Clear();
Close();
}
catch (Exception ex)
{
wysc.systemlog(ex.Message, "~/err/sql");
number = 0;
}
return number;
}
{
int number = 0;
try
{
SqlCommand cmd = new SqlCommand(ProcedureName, conn);
for (int i = 0; i < VariableName.Length; i++)
{ cmd.Parameters.Add("@" + VariableName[i], Values[i]);
} Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
number =(int) cmd.Parameters["@pkid"].Value;
cmd.Parameters.Clear();
Close();
}
catch (Exception ex)
{
wysc.systemlog(ex.Message, "~/err/sql");
number = 0;
}
return number;
}
解决方案 »
- jquery easyui的datagrid控件为什么在http访问下无法加载数据。
- 关于.net和储存过程的问题,请指教一下.
- asp.net 2.0 网站,问什么网址会被追加随即字符???
- 一个简单的JS传参,在线等。3分钟内结贴
- asp.net如何写xml文件?
- vs2010 新建asp.net空网站问题
- 求asp.net(c#)实现调用摄相头的视频在WEB中实现实时直播的思路......有例子更好.谢谢.就几分了,不好意思
- 请问一个简单的问题
- autofac依赖注入问题(MVC5/WebAPI2)
- 各位谁有aspnetmenu1.04的正式版本!!!给小弟一个
- 100分求一份。net面试题,google,百度的,不给分
- 求一毛笔效果(带笔锋)的算法,共同探讨
下面是存储过程
create proc inbbs
@userID int,
@uname nvarchar(100),
@classID int ,
@ifok int,
@click int,
@title nvarchar(200),
@con nvarchar(1000),
@pkid int output
as
insert into bbs values(@userID,@uname,@classID,@ifok,@click,@title,@con)
--select @pkid =SCOPE_IDENTITY()
select @pkid =SCOPE_IDENTITY()
return
go
取的类型错误
select @pkid =SCOPE_IDENTITY()
return @pkidSCOPE_IDENTITY() 是什么,跟添加数据有什么关系number =cmd.ExecuteScalar(); 就可以得到SQL中返回的第一行第一列数值
不是添加的ID值么
return @pkid
{
int number = 0;
try
{
SqlCommand cmd = new SqlCommand(ProcedureName, conn);
for (int i = 0; i < VariableName.Length; i++)
{ cmd.Parameters.Add("@" + VariableName[i], Values[i]);
} Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters["@pkid"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
number =(int) cmd.Parameters["@pkid"].Value;
cmd.Parameters.Clear();
Close();
}
catch (Exception ex)
{
wysc.systemlog(ex.Message, "~/err/sql");
number = 0;
}
return number;
}
public static int ExecProcedurei(string ProcedureName, string[] VariableName, object[] Values)
{
int number = 0;
try
{
SqlCommand cmd = new SqlCommand(ProcedureName, conn);
for (int i = 0; i < VariableName.Length; i++)
{ cmd.Parameters.Add("@" + VariableName[i], Values[i]);
} Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
number =(int) cmd.Parameters["@pkid"].Value;
cmd.Parameters.Clear();
Close();
}
catch (Exception ex)
{
wysc.systemlog(ex.Message, "~/err/sql");
number = 0;
}
return number;
}
你的cmd还要添加一个输出类型参数,用来接收存储过程返回的参数@pkid
cmd.Parameters.Add("@pkid");
cmd.Parameters["@pkid"].Direction = ParameterDirection.Output;
number =(int) cmd.Parameters["@pkid"].Value;
@userID int,
@uname nvarchar(100),
@classID int ,
@ifok int,
@click int,
@title nvarchar(200),
@con nvarchar(1000),
@pkid int output
as
insert into bbs values(@userID,@uname,@classID,@ifok,@click,@title,@con)
set @pkid=@@identity
return @pkid
go
{
int number = 0;
try
{
SqlCommand cmd = new SqlCommand(ProcedureName, conn);
for (int i = 0; i < VariableName.Length; i++)
{ if (i == VariableName.Length - 1)
{
cmd.Parameters.Add("@" + VariableName[i], Values[i]).Direction = ParameterDirection.ReturnValue; ;
//cmd.Parameters["@" + VariableName[i]].Direction = ParameterDirection.ReturnValue;
}
else
{
cmd.Parameters.Add("@" + VariableName[i], Values[i]);
} } Open();
//cmd.Parameters["@pkid"].Direction = ParameterDirection.ReturnValue;
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
number = (int)cmd.ExecuteScalar();
cmd.Parameters.Clear();
Close();
}
catch (Exception ex)
{
wysc.systemlog(ex.Message, "~/err/sql");
number = 0;
}
return number;
}
这样改,说没给@pkID提供参数
objConn.ConnectionString = "Provider=SQLOLEDB;Data Source=XXX;User ID=sa;pwd=sa;Initial Catalog=HEGENG";
objConn.Open(); objAdapter = new OleDbDataAdapter("存储过程名 参数", objConn);
objBuider = new OleDbCommandBuilder(objAdapter);
objDs = new DataSet();
objAdapter.Fill(objDs);objDs这里就有返回值了
objDs.table[0]........
/// 增、删、改操作数据库的方法(存储过程)
/// </summary>
/// <param name="ProcedureName">存储过程名</param>
/// <param name="VariableName">参数集合</param>
/// <param name="Values">值集合</param>
/// <returns>返回插入ID号</returns>
public static int ExecProcedurei(string ProcedureName, string[] VariableName, object[] Values)
{
int number = 0;
string inc = ""; //参数
try
{
SqlCommand cmd = new SqlCommand(ProcedureName, conn);
for (int i = 0; i < VariableName.Length; i++)
{
if (i == VariableName.Length - 1)
{
//cmd.Parameters("@" + VariableName[i], Values[i]).Direction = ParameterDirection.ReturnValue; ;
cmd.Parameters.Add("@" + VariableName[i], Values[i]);
cmd.Parameters["@" + VariableName[i]].Direction = ParameterDirection.Output;
inc = "@" + VariableName[i].ToString(); }
else
{
cmd.Parameters.Add("@" + VariableName[i], Values[i]);
}
} Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
object o = cmd.Parameters[inc].Value;
//number = (int)cmd.Parameters[inc].Value;
//number = (int)cmd.Parameters["@pkid"].Value;
number = (int)o;
cmd.Parameters.Clear();
Close();
}
catch (Exception ex)
{
wysc.systemlog(ex.Message, "~/err/sql");
number = 0;
}
return number;
}
改好了,多谢大家!!
create proc inbbs2
@userID int,
@uname nvarchar(100),
@classID int ,
@ifok int,
@click int,
@title nvarchar(200),
@con nvarchar(1000),
@pkid int output
as
insert into bbs values(@userID,@uname,@classID,@ifok,@click,@title,@con)
set @pkid=@@identity
return @pkid
go改好了,多谢大家!!改好了,多谢大家!!