高手请进:三层开发+存储过程!!

zhenhua110 2009-06-30 04:23:08
-------------添加信息---------------------
create proc AddMsg
(
@Name varchar(20),
@sex varchar(2),
@School varchar(50),
@remark varchar(100)

)
as
insert into UserInfo(name,sex,school,remark) values (@name,@sex,@school,@remark)
go


---------更新一条信息------
create proc UpdateMsg
(
@Id int,
@Name varchar(20),
@sex varchar(2),
@School varchar(50),
@remark varchar(100)

)
as
update UserInfo set name=@name,sex=@sex,school=@school,remark=@remark where id=@id
go


如何在三层开发中 --数据层 如何使用这两个存储过程?
...全文
14 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
happy184 2009-06-30

public static int ExecuteCommand(string proc)
{
SqlCommand cmd = new SqlCommand(proc, Con);
cmd.CommandType = CommandType.StoredProcedure;
int result = cmd.ExecuteNonQuery();
Con.Close();
return result;
}
回复
happy184 2009-06-30

public static int ExecuteCommand(string proc, SqlParameter[] paras)
{
SqlCommand cmd = new SqlCommand(proc, Con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(paras);
int result = cmd.ExecuteNonQuery();
Con.Close();
return result;
}

回复
peng_weida 2009-06-30
推荐一本书: ASP.NET 2.0电子商务开发实战
真的很有用 网上也有这教程的
回复
wuyq11 2009-06-30
在DAL里调用存储过程,到51aspx.com里看看代码很多
SqlParameter[] commandParameters = new SqlParameter[] {
@Name varchar(20),
@sex varchar(2),
@School varchar(50),
@remark varchar(100)
new SqlParameter("@Name", SqlDbType.varchar, 200), new SqlParameter("@sex", SqlDbType.varchar, 2), new SqlParameter("@School ", SqlDbType.varchar, 50), new SqlParameter("@remark ", SqlDbType.varchar, 100) };
commandParameters[0].Value = "";
commandParameters[1].Value = "";
commandParameters[2].Value = "";
Msg m=new Mag();
DataTable table = SqlHelper.ExecuteTable(SqlHelper.ConnectionStringKy, CommandType.StoredProcedure, "AddMsg", commandParameters);


public static DataTable ExecuteTable(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
return ExecuteTable(ConnectionStringKy, cmdType, cmdText, commandParameters);
}

public static DataTable ExecuteTable(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = cmd;
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, "test");
cmd.Parameters.Clear();
return dataSet.Tables["test"];
}
回复
jiejie526 2009-06-30
你有没有用DBHERPER类
回复
惜分飞 2009-06-30
数据处理放在dal层(存储过程的调用写在这里面),
在业务逻辑层调用dal中的数据处理函数
回复
stromboy007 2009-06-30
那字看着眼花·~~·
回复
camelials 2009-06-30
对于完全存储过程的开发,最好使用OR-Mapping的方式。
今天刚基本修改和简化完了一个ORM的东东。。
回复
mail_ricklee 2009-06-30
建议用IBatisNet,调用存储过程方便
可以参考www.cnblogs.com/mail-ricklee
中的FortuneBase
回复
dong547785510 2009-06-30
2楼的我一直都用的啊。
回复
tk1255270 2009-06-30
晕,不好意思,开始没看清你说的,直接在业务逻辑层写函数调用就行了,如果你用sqlhelp的话就更简单了
c# code
public DataSet Test(DateTime dt1,DateTime dt2)
{
SqlParameter[] SP = new SqlParameter[2];
SP[0] = new SqlParameter("@dateStart", SqlDbType.DateTime);
SP[0].Value = dt1;
SP[1] = new SqlParameter("@dateEnd", SqlDbType.DateTime);
SP[1].Value = dt2;
ds = SqlHelper.ExecuteDataset(DB.ConSql,CommandType.StoredProcedure, "UpdateMsg ", SP);

}
回复
asge8900 2009-06-30
你什么意思,你是要在添加后又修改么,这样的话update的功能用触发器实现不就行了
回复
chenyunkun2008 2009-06-30


在代码中写入
SqlConnection Connection=new SqlConnection("连接字符串");
SqlCommand cmd = new SqlCommand(“你的存储过程名”, Connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(sps);
return cmd.ExecuteNonQuery();

回复
tk1255270 2009-06-30
你将两个SQL 写在一个存储过程中
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2009-06-30 04:23
社区公告
暂无公告