用业务组件,编译后,用imports导入,可以在任何页面使用。

解决方案 »

  1.   

    要简单,可以写个函数,每次调用时,传入SQL语句,返回Dataset
      

  2.   

    参考SqlHelper类比如说在选择数据时,可以使用传入表名、字段名、字段参数等
    private void GetDate(string TableName,string FieldName,string FieldParam)
    {
       string cmd = "select * from "+TableName+" where "+FieldName+"=.........
    }然后使用重载方法,添加更多的...aero_boy(老牛) 说的也很好
      

  3.   

    to: aero_boy(老牛) 
    请问怎么写跨多个页面的函数呢,应该在那个页面里编写,应如何返回?to: zhanqiangz(闲云野鹤) 
    请问业务组件在哪里?是第三方控件还是.net自带的?希望能看到代码,谢谢
      

  4.   

    to:icehawk 
    我也很想这样做啊,但是手头的资料不够。
    能给一段代码么,关于封装和调用的
      

  5.   

    把常用的过程象数据操作等;直接做做成*.dll;想怎么用就可以!比类还方便!!
      

  6.   

    public abstract class DbObject
    {
    protected SqlConnection conn;
    protected int MCmdType;
    protected  string connstr = "server=,uid=,pwd=,database=";
    protected SqlCommandBuilder commandbuild;
    public SqlDataAdapter Adapter = new SqlDataAdapter();
    public DataSet Mdataset;
    public DbObject()
    {
    conn = new SqlConnection( connstr);
    MCmdType = 0;
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    public int CmdType
    {
    set
    {
    if(MCmdType != value)
    {
    MCmdType = value;
    }

    }
    get
    {
    return MCmdType;
    }
    }
        private SqlCommand BuildCmd( string CmdStr , SqlParameter [] parameters )
    {
    SqlCommand command = BuildQuery( CmdStr , parameters );
    command.Parameters.Add( new SqlParameter( "ReturnValue" ,
    SqlDbType.Int , 4 , 
    ParameterDirection.ReturnValue , false ,
    0 ,
    0 ,
    string.Empty , DataRowVersion.Default , null ));
    return command;
    } private SqlCommand BuildQuery( string CmdStr , SqlParameter [] parameters )
    {
    SqlCommand command = new SqlCommand(CmdStr , conn);
    if(MCmdType == 1)
    {
    command.CommandType = CommandType.StoredProcedure;
    }
    else 
    {
    command.CommandType=CommandType.Text;
    }
    if(parameters != null)
    {
    foreach( SqlParameter parameter in parameters)
    {
    command.Parameters.Add( parameter );
    }
    }
    return command;
    }
    protected int Update(string CmdStr , SqlParameter [] parameters)
    {
    SqlCommand command = BuildQuery(CmdStr , parameters);
    int i = command.ExecuteNonQuery();
    return i;
    }

    protected int RunProcedure( string CmdStr , SqlParameter [] parameters , out int rowsAffected )
    {
    int result;
    SqlCommand command = BuildCmd( CmdStr , parameters );
    rowsAffected = command.ExecuteNonQuery();
    result = (int)command.Parameters["ReturnValue"].Value;
    return result;
    }
    protected SqlDataReader RunProcedure( string CmdStr , SqlParameter [] parameters )
    {
    SqlDataReader returnReader;
    SqlCommand command = BuildQuery(CmdStr , parameters);
    returnReader = command.ExecuteReader();
    return returnReader;
    }
    protected DataSet RunProcedure(string CmdStr , SqlParameter[] parameters , string tableName )
    {
    Mdataset = new DataSet();
    Adapter.SelectCommand = BuildQuery( CmdStr , parameters );
    Adapter.Fill( Mdataset , tableName );
    return Mdataset;
    }
    protected void RunProcedure( string CmdStr , SqlParameter[] parameters , DataSet dataset , string tableName )
    {
    Adapter.SelectCommand = BuildQuery(CmdStr , parameters );
    Adapter.Fill( dataset , tableName );
    } }
      

  7.   

    参考的《asp.net web站点高级保存》
    using System;
    using System.Data;
    using System.Data.SqlClient;namespace Ydyd.Core
    { /// <summary>
    /// 执行存储过程,能返回 SqlDataReader 或 DataSet 类型的数据
    /// </summary>
    public abstract class DbObject
    {
    //连接字符串
    private string connectionString; //数据库连接对象
    protected SqlConnection connection; public DbObject(string connectionString)
    {
    this.connectionString = connectionString;
    connection = new SqlConnection(this.connectionString);
    } /// <summary>
    /// 根据传入的存储过程名和 IDataParameter 型数组,构造 SqlCommand 对象
    /// </summary>
    /// <param name="storedProcName">存储过程名</param>
    /// <param name="parameters">IDataParameter 型数组</param>
    /// <returns> SqlCommand 对象</returns>
    private SqlCommand BuildQueryCommand(string storedProcName, IDataParameter[] parameters)
    {
    SqlCommand command = new SqlCommand(storedProcName, connection);
    command.CommandType = CommandType.StoredProcedure; foreach (SqlParameter parameter in parameters)
    {
    command.Parameters.Add(parameter);
    } return command;
    } /// <summary>
    /// 执行存储过程,返回影响的行数
    /// </summary>
    /// <param name="storedProcName">存储过程名</param>
    /// <param name="parameters"> IDataParameter 型数组</param>
    /// <returns>影响的行数</returns>
    protected int RunProcedureReturnAffectedRows(string storedProcName, IDataParameter[] parameters)
    {
    int rowsAffected = 0;
    SqlCommand command = BuildQueryCommand(storedProcName, parameters); try
    {
    connection.Open();
    rowsAffected = command.ExecuteNonQuery();

    }
    catch(SqlException e)
    {
    //将错误写入日志文件
    ExceptionLog.WriteLog(e.Message.ToString());
    }
    finally
    {
    if (connection.State == ConnectionState.Open)
    {
    connection.Close();
    }
    } return rowsAffected; } /// <summary>
    /// 执行存储过程,不需要参数
    /// 注意:一定要调用 connection.Close();来关闭连接
    /// </summary>
    /// <param name="storedProcName">存储过程名</param>
    /// <returns>SqlDataReader 型对象</returns>
    protected SqlDataReader RunProcedure(string storedProcName)
    {
    SqlDataReader dataReader = null; SqlCommand command = new SqlCommand(storedProcName, connection);
    command.CommandType = CommandType.StoredProcedure; try
    {
    connection.Open();
    dataReader = command.ExecuteReader(CommandBehavior.CloseConnection);
    }
    catch(SqlException e)
    {
    connection.Close(); //将错误写入日志文件
    ExceptionLog.WriteLog(e.Message.ToString());
    }

    return dataReader; } /// <summary>
    /// 执行存储过程,将数据通过 SqlDataReader 型对象返回
    /// 注意:一定要调用 connection.Close();来关闭连接
    /// </summary>
    /// <param name="storedProcName">存储过程名</param>
    /// <param name="parameters"> IDataParameter 型数组</param>
    /// <returns>SqlDataReader 型对象</returns>
    protected SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters)
    {
    SqlDataReader dataReader = null;
    SqlCommand command = BuildQueryCommand(storedProcName, parameters); try
    {
    connection.Open();
    dataReader = command.ExecuteReader(CommandBehavior.CloseConnection);
    }
    catch(SqlException e)
    {
    connection.Close(); //将错误写入日志文件
    ExceptionLog.WriteLog(e.Message.ToString());
    } return dataReader; } /// <summary>
    /// 执行存储过程,将数据通过 DataSet 型对象返回
    /// </summary>
    /// <param name="storedProcName">存储过程名</param>
    /// <param name="parameters"> IDataParameter 型数组</param>
    /// <param name="tableName">指定的表名</param>
    /// <returns>DataSet 型对象</returns>
    protected DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
    {
    DataSet dataSet = new DataSet(); try
    {
    connection.Open();
    SqlDataAdapter dataAdapter = new SqlDataAdapter();
    dataAdapter.SelectCommand = BuildQueryCommand(storedProcName, parameters);
    dataAdapter.Fill(dataSet, tableName);
    }
    catch(SqlException e)
    {
    //将错误写入日志文件
    ExceptionLog.WriteLog(e.Message.ToString());
    }
    finally
    {
    if (connection.State == ConnectionState.Open)
    {
    connection.Close();
    }
    } return dataSet; } /// <summary>
    /// 执行存储过程,将数据添加到指定的 DataSet
    /// </summary>
    /// <param name="storedProcName">存储过程名</param>
    /// <param name="parameters"> IDataParameter 型数组</param>
    /// <param name="dataSet">指定的 DataSet</param>
    /// <param name="tableName">指定的表名</param>
    protected void RunProcedure(string storedProcName, IDataParameter[] parameters, DataSet dataSet, string tableName)
    {
    try
    {
    connection.Open();
    SqlDataAdapter dataAdapter = new SqlDataAdapter();
    dataAdapter.SelectCommand = BuildQueryCommand(storedProcName, parameters);
    dataAdapter.Fill(dataSet, tableName);
    }
    catch(SqlException e)
    {
    //将错误写入日志文件
    ExceptionLog.WriteLog(e.Message.ToString());
    }
    finally
    {
    if (connection.State == ConnectionState.Open)
    {
    connection.Close();
    }
    } } }
    }
      

  8.   

    你可以用CMP用来做数据操作。