存储过程的两种方法!!拜托各位解答!!

chenzeye 2007-05-13 08:10:50
SqlConnection con=DBCon.createConn();
con.Open();
SqlCommand cmd=new SqlCommand("insertUserDetails",con);
cmd.CommandType=System.Data.CommandType.StoredProcedure;
SqlParameter[] sqlmeter={
new SqlParameter("@userID",System.Data.SqlDbType.Int),
new SqlParameter("@userName",System.Data.SqlDbType.VarChar,50),
new SqlParameter("@userPassword",System.Data.SqlDbType.VarChar,30),
new SqlParameter("@userEmail",System.Data.SqlDbType.VarChar,100),
new SqlParameter("@userPostNum",System.Data.SqlDbType.Int),
new SqlParameter("@userTopicNum",System.Data.SqlDbType.Int),
new SqlParameter("@userSign",System.Data.SqlDbType.Text),
new SqlParameter("@userSex",System.Data.SqlDbType.VarChar,5),
new SqlParameter("@userProvince",System.Data.SqlDbType.VarChar,30),
new SqlParameter("@userCity",System.Data.SqlDbType.VarChar,30),
new SqlParameter("@userFace",System.Data.SqlDbType.VarChar,250),
new SqlParameter("@faceWidth",System.Data.SqlDbType.Int),
new SqlParameter("@faceHeight",System.Data.SqlDbType.Int),
new SqlParameter("@userContact",System.Data.SqlDbType.VarChar,100),
new SqlParameter("@registerDate",System.Data.SqlDbType.DateTime),
new SqlParameter("@userLoginNum",System.Data.SqlDbType.Int),
new SqlParameter("@userViews",System.Data.SqlDbType.Int),
new SqlParameter("@userPrivilede",System.Data.SqlDbType.Int),
new SqlParameter("@userBirthday",System.Data.SqlDbType.VarChar,30),
new SqlParameter("@userQuestion",System.Data.SqlDbType.VarChar,100),
new SqlParameter("@userAnswer",System.Data.SqlDbType.VarChar,100),
new SqlParameter("@userMobile",System.Data.SqlDbType.VarChar,15)

};
sqlmeter[0].Value=user.userID;
sqlmeter[1].Value=user.userName;
sqlmeter[2].Value=user.userPwd;
sqlmeter[3].Value=user.userEmail;
sqlmeter[4].Value=user.userPostNum;
sqlmeter[5].Value=user.userTopicNum;
sqlmeter[6].Value=user.userSign;
sqlmeter[7].Value=user.userSex;
sqlmeter[8].Value=user.userProvince;
sqlmeter[9].Value=user.userCity;
sqlmeter[10].Value=user.userFace;
sqlmeter[11].Value=user.faceWidth;
sqlmeter[12].Value=user.faceHeight;
sqlmeter[13].Value=user.userContact;
sqlmeter[14].Value=user.registerDate;
sqlmeter[15].Value=user.loginNum;
sqlmeter[16].Value=user.userViews;
sqlmeter[17].Value=user.userPrivilege;
sqlmeter[18].Value=user.userBirthDate;
sqlmeter[19].Value=user.userQuestion;
sqlmeter[20].Value=user.userAnswer;
sqlmeter[21].Value=user.userPhone;

cmd.ExecuteNonQuery();
con.Close();
return true;
我不想用参数一个一个的赋值,我想生成一个参数的实例对象数组,然后保存各个参数,然再根据数组的索引来赋值!!各位是不是有一个RunProcedure方法啊,我都忘记了.可是我找不到这个方法啊,各位帮帮忙,急呀!!
...全文
218 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yixianggao 2007-05-14
  • 打赏
  • 举报
回复
用反射循环赋值多省事!

而且参数类型不是必添参数,俺从来都不写,统统按字符串处理,反正是 SQL!!!
ke5315309 2007-05-14
  • 打赏
  • 举报
回复
string mysql = "insert into Fatie_Tables(Fatie_Title,Fatie_Boby,User_Name,Fatie_Time,Fatie_IsLook,Fatie_Isceam,Fatie_Isfix,Fenglei_ID,Fatie_Upfile,Fatie_Showqianming)VALUES(@chuqu,@neirong,'" + yonghuming.Text + "','" + shijian + "',0,0,0,'" + Session["id"] + "','" + Session["filename"].ToString() + "','" + isqianming + "')";
mycomm = new SqlCommand(mysql, myconn);
mycomm.Parameters.Add(new SqlParameter("@chuqu", SqlDbType.NVarChar, 50));
mycomm.Parameters["@chuqu"].Value = htmlencode(zhuti1);

mycomm.Parameters.Add(new SqlParameter("@neirong", SqlDbType.NText));
mycomm.Parameters["@neirong"].Value = Info.Value;
y22059 2007-05-14
  • 打赏
  • 举报
回复
搭车学习
emenwin 2007-05-14
  • 打赏
  • 举报
回复
这个方法 ?
public int runProc(string procedureName, SqlParameter[] sqlPrams)
{
SqlCommand sqlComm = CreateCommand(procedureName, sqlPrams);
try
{

sqlComm.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
return (int)sqlComm.Parameters["ReturnValue"].Value;

}
private SqlCommand CreateCommand(string ProcedureName, SqlParameter[] SqlPrams)
{
//打开数据库连接
this.myOpen();

SqlCommand Sqlcmd = new SqlCommand(ProcedureName, this.Connection);
Sqlcmd.CommandType = CommandType.StoredProcedure;

// 添加储存过程参数
if (SqlPrams != null)
{
foreach (SqlParameter Sqlparameter in SqlPrams)
{
Sqlcmd.Parameters.Add(Sqlparameter);
}
}

// 返回参数
Sqlcmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));

return Sqlcmd;
}
chenzeye 2007-05-14
  • 打赏
  • 举报
回复
各位是不是有一个RunProcedure方法啊?可不可以用这种方法啊!!!
xiaoliangwh 2007-05-13
  • 打赏
  • 举报
回复
good luck !
Iceguy 2007-05-13
  • 打赏
  • 举报
回复
private SqlParameter p;
private ArrayList li=new ArrayList();

#region ** 添加参数
//添加 Input 类型参数
//参数 2 个:参数名,参数值
public void AddInputParam(string strName,object strValue)
{
p=new SqlParameter();
p.ParameterName=strName.Trim();
p.Value=strValue;
p.Direction=ParameterDirection.Input;

li.Add(p);
}

//上面是把参数放入数组的方法 调用这个方法先把参数保存

//例子
public DataSet getDs(string strTop)
{
p.Clear();
AddInputParam("@Top", strTop); //这里strTop是传入的参数
DataSet ds = SqlComd.CreateDataSet("存储过程名", p, "返回的表名");
p.Clear();
return ds;
}
***********************************************************************************
//有参数存储过程的 DataSet 对象
public static DataSet CreateDataSet(string spName,DbParameters p,string tblName)
{
DataSet ds=new DataSet();
SqlDataAdapter comdAdapter=new SqlDataAdapter(spName,DbConn.SqlConn);
comdAdapter.SelectCommand.CommandType=CommandType.StoredProcedure;

if(p.Length>0)
{
for(int i=0;i<p.Length;i++)
{
SqlParameter parm=(SqlParameter)p[i];
comdAdapter.SelectCommand.Parameters.Add(parm);
}
}

comdAdapter.Fill(ds,tblName);
DbConn.SqlConn.Close();
comdAdapter.Dispose();

return ds;
}


//我能提供的帮助就这样了...这其实不光1 2句话能说全的 是从逻辑层 数据访问层 数据库存储过程的一个整体访问流程。上面的有点改动 有Bug你自己稍微修改下。
LZ说的RunProcedure我没有听说过。
chenzeye 2007-05-13
  • 打赏
  • 举报
回复
帮我解答我会给分的:)因为我刚刚才学会给分,我以前以为是自动给的呢
chenzeye 2007-05-13
  • 打赏
  • 举报
回复
各位别这么现实好不好啊,我不是给分数了吗?30分啊,各位帮帮忙啊
Iceguy 2007-05-13
  • 打赏
  • 举报
回复
mark

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧