数据层用微软的daab3.1
数据库为access,sql语句为"del from t_logs where id=@id and temp=@temp"
比如我想写一个dellog的函数,这个函数能够接收这个sql语句的参数,并执行之注:这个dellog函数是处于中间层的,并不能直接取得表单中id和temp的值,所以要写函数实现,感觉比较麻烦
public void delLog(params OleDbParameter[] commandParameters)  //1.这个地方的参数怎么写
{
AdoHelper helper = AdoHelper.CreateHelper("WebData");
string connString = ConfigurationSettings.AppSettings["OleWebDataConnStr"]; 
helper.ExecuteNonQuery(connString,CommandType.Text,sql,??);  //2.这个地方又怎么写
}敬请高手们帮帮小弟我,先谢谢了:)

解决方案 »

  1.   

    不知道AdoHelper和PetShop里的SQLHelper的操作是不是一样的,如果是一样的话就可以这样写:
    public void delLog(OleDbParameter[] commandParameters)  
    {
        AdoHelper helper = AdoHelper.CreateHelper("WebData");
        string connString = ConfigurationSettings.AppSettings["OleWebDataConnStr"]; 
        helper.ExecuteNonQuery(connString,CommandType.Text,sql,commandParameters);
      

  2.   

    to: mapserver(我需要RMB)那我在aspx.cs里面怎么使用这个函数呢,比如id=this.txtid.Text;temp=this.txttemp.Text;还有sqlhelper不支持access的
      

  3.   

    另外
    daab3.1提供了
    public virtual IDataParameter GetParameter( string name, object value )
    {
    IDataParameter parameter = GetParameter();
    parameter.ParameterName = name;
    parameter.Value = value; return parameter;
    }
    方法 不知道有何作用
      

  4.   

    那把你的AdoHelper的代码贴出来看看。
      

  5.   

    代码太长了  csdn贴不上来 
    怎么办啊
      

  6.   

    怎么没人愿意帮帮小弟我啊唉..难道csdn没有以前热情了吗?
      

  7.   

    记不太清楚语法,现在也没法调试,应该是这样的:public void Dellog( string id, string temp )
    {
    string sql = "del from t_logs where id=? and temp=?";
    AdoHelper helper = AdoHelper.CreateHelper("WebData");
    string connString = ConfigurationSettings.AppSettings["OleWebDataConnStr"]; IDataParameter parms = { helper.GetParameter( "@id", id ), helper.GetParameter( "temp", temp ) };
    helper.ExecuteNonQuery( connString, CommandType.Text, sql, parms );
    }页面调用的时候可以:dellog( this.txtid.Text, this.txttemp.Text );
      

  8.   

    谢谢gOODiDEA(无语) 大哥的回答 这样是可以的 小弟还有一个疑问如果来自表单的变量太多 那么造成这个函数的参数太多  调用起来难免不方便我想请问您是怎么解决的?多谢
      

  9.   

    如果参数过多可以考虑把这些参数封装成为一个对象,如:
    class LogInfo
    {
    string id = string Empty;
    string temp = string.Empty;
    public string Id
    {
    get
    {
    return id;
    }
    set
    {
    id = value;
    }
    }
    ...
    }public void Dellog( LogInfo logInfo )
    {
    ...
    IDataParameter parms = { helper.GetParameter( "@id", logInfo.Id ), helper.GetParameter( "temp", logInfo.Temp ) };}客户端中:LogInfo logInfo = new LogInfo();
    logInfo.Id = this.txtid.Text;
    ...Dellog( logInfo );不过也有人指出这种方式不如直接写长参数好,因为无法保证客户端把每个需要的属性都赋值了