-------------添加信息---------------------
create proc AddMsg
(
@Name varchar(20),
@sex varchar(2),
@School varchar(50),
@re varchar(100))
as
 insert into UserInfo(name,sex,school,re) values (@name,@sex,@school,@re)
go
---------更新一条信息------
create proc UpdateMsg
(
@Id int,
@Name varchar(20),
@sex varchar(2),
@School varchar(50),
@re varchar(100))
as
 update UserInfo set name=@name,sex=@sex,school=@school,re=@re where id=@id
go
如何在三层开发中 --数据层 如何使用这两个存储过程?

解决方案 »

  1.   

    你将两个SQL 写在一个存储过程中
      

  2.   

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

  3.   

    你什么意思,你是要在添加后又修改么,这样的话update的功能用触发器实现不就行了
      

  4.   

    晕,不好意思,开始没看清你说的,直接在业务逻辑层写函数调用就行了,如果你用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);         }
      

  5.   

    建议用IBatisNet,调用存储过程方便
    可以参考www.cnblogs.com/mail-ricklee
    中的FortuneBase
      

  6.   

    对于完全存储过程的开发,最好使用OR-Mapping的方式。
    今天刚基本修改和简化完了一个ORM的东东。。
      

  7.   

    数据处理放在dal层(存储过程的调用写在这里面),
    在业务逻辑层调用dal中的数据处理函数
      

  8.   

    在DAL里调用存储过程,到51aspx.com里看看代码很多
     SqlParameter[] commandParameters = new SqlParameter[] {
    @Name varchar(20), 
    @sex varchar(2), 
    @School varchar(50), 
    @re varchar(100)
     new SqlParameter("@Name", SqlDbType.varchar, 200), new SqlParameter("@sex", SqlDbType.varchar, 2), new SqlParameter("@School ", SqlDbType.varchar, 50), new SqlParameter("@re ", 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"];
            }
                  
      

  9.   

    推荐一本书: ASP.NET 2.0电子商务开发实战
    真的很有用 网上也有这教程的
      

  10.   


      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;
            }
      

  11.   


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