像vb可以把一些常用的函数,比如连接数据库的函数,放入类模块中
想调用时,直接可调用,在C#中如何实现?谢谢!

解决方案 »

  1.   

    类的静态方法就是相当于函数,直接调用。比如
    平方
    Console.WriteLine(Math.Pow(2,3));
      

  2.   

    #region ExecuteNonQuery
    /// <summary>
    ///     执行一个SQL Command(使用ConnectString)
    /// </summary>
    ///     <param name="connString">ConnectString(Sql连接字符串)</param>
    ///     <param name="cmdType">Command类型</param>
    ///     <param name="cmdText">Command的语句(SQL语句)</param>
    ///     <param name="cmdParms">Command的参数(SqlParameter[]数组类型)</param>
    ///     <returns>Command的返回值(受影响的行数)</returns>
    public static int ExecuteNonQuery(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms) 
    {
    SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connString)) 
    {
    PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
    int val = cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
    return val;
    }
    } /// <summary>
    ///     执行一个SQL Command(使用隐含的ConnectString)
    /// </summary>
    /// <param name="cmdType">Command类型</param>
    ///     <param name="cmdText">Command的语句(SQL语句)</param>
    ///     <param name="cmdParms">Command的参数(SqlParameter[]数组类型)</param>
    ///     <returns>Command的返回值(受影响的行数)</returns>
    public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params SqlParameter[] cmdParms) 
    {
    SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(CONN_STRING)) 
    {
    PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
    int val = cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
    return val;
    }
    }// public static int ExecuteNonQuery(string cmdText)
    // {
    // }

    /// <summary>
    /// 执行一个简单的查询, 只需要输入SQL语句, 一般用于更新或者删除
    /// </summary>
    /// <param name="sqlText"></param>
    /// <returns></returns>
    public static int ExecuteNonQuery(string sqlText) 
    {
    return ExecuteNonQuery(CommandType.Text,sqlText);
    } /// <summary>
    ///     执行一个SQL Command(使用SqlTransaction)
    /// </summary>
    /// <param name="trans">使用的SqlTransaction</param>
    ///     <param name="cmdType">Command类型</param>
    ///     <param name="cmdText">Command的语句(SQL语句)</param>
    ///     <param name="cmdParms">Command的参数(SqlParameter[]数组类型)</param>
    ///     <returns>Command的返回值(受影响的行数)</returns>
    public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType,string cmdText, params SqlParameter[] cmdParms) 
    {
    SqlCommand cmd = new SqlCommand();
    PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, cmdParms);
    int val = cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
    return val;
    }

    /// <summary>
    ///     根据指定DsCommandType类型,自动生成cmd执行dataset的更新
    /// </summary>
    /// <param name="connString">ConnectString(Sql连接字符串)</param>
    ///     <param name="cmdType">Command类型</param>
    ///     <param name="dsCommandType">Enum类型</param>
    ///     <param name="cmdText">Command的语句(SQL语句)</param>
    ///     <param name="dataset">dataset</param>
    ///     <param name="tablename">表名</param>
    ///     <param name="cmdParms">Command的参数(SqlParameter[]数组类型)</param>
    ///     <returns>是否更新成功</returns>
    public static bool ExecuteNonQuery(string connString,CommandType cmdType,CommandEnum.DsCommandType dsCommandType,string cmdText,DataSet dataset,string tablename,params SqlParameter[] cmdParms)
    {
    SqlDataAdapter dsCommand = new SqlDataAdapter();
    SqlCommand cmd = new SqlCommand();
    using (SqlConnection conn = new SqlConnection(connString)) 
    {
    if (conn.State != ConnectionState.Open)
    conn.Open(); cmd.Connection = conn;
    cmd.CommandText = cmdText;
    cmd.CommandType = cmdType;
    if (cmdParms != null) 
    {
    foreach (SqlParameter parm in cmdParms)
    cmd.Parameters.Add(parm);
    }
    switch(dsCommandType)
    {
    case CommandEnum.DsCommandType.InsertCommand:
    dsCommand.InsertCommand = cmd;
    break;
    case CommandEnum.DsCommandType.UpdateCommand:
    dsCommand.UpdateCommand = cmd;
    break;
    case CommandEnum.DsCommandType.DeleteCommand:
    dsCommand.DeleteCommand = cmd;
    break;
    default:break;
    }
    dsCommand.Update(dataset,tablename);
    if ( dataset.HasErrors )
    {
    dataset.Tables[tablename].GetErrors()[0].ClearErrors();
    return false;
    }
    else
    {
    dataset.AcceptChanges();
    return true;
    }
    } }
    /// <summary>
    ///     更新一个记录集(使用connString)
    /// </summary>
    ///     <param name="connString">ConnectString(Sql连接字符串)</param>
    ///     <param name="cmdInsertType">commandInsert类型</param>
    ///     <param name="cmdInsertText">SQL语句(Insert)</param>
    ///     <param name="cmdUpdateType">commandUpdate类型</param>
    ///     <param name="cmdUpdateText">SQL语句(Update)</param>
    ///     <param name="cmdInsertType">commandDelete类型</param>
    ///     <param name="cmdDeleteText">SQL语句(Delete)</param>
    ///     <param name="cmdInsertParms">InsertCommand参数</param>
    ///     <param name="cmdUpdateParms">UpdateCommand参数</param>
    ///     <param name="cmdDeleteParms">DeleteCommand参数</param>
    ///     <param name="dataset">dataset</param>
    ///     <param name="tablename">表名</param>
    ///     <returns>是否更新成功</returns>
    public static bool UpdateDataset(string connString,CommandType cmdInsertType,string cmdInsertText,CommandType cmdUpdateType,string cmdUpdateText,CommandType cmdDeleteType,string cmdDeleteText,SqlParameter[] cmdInsertParms,SqlParameter[] cmdUpdateParms,SqlParameter[] cmdDeleteParms,DataSet dataset,string tablename)
    {
    SqlDataAdapter dsCommand = new SqlDataAdapter();
    using (SqlConnection conn = new SqlConnection(connString)) 
    {
    if (conn.State != ConnectionState.Open)
    conn.Open();
    if(cmdInsertText != String.Empty)
    {
    SqlCommand cmdInsert = new SqlCommand();
    cmdInsert.Connection = conn;
    cmdInsert.CommandText = cmdInsertText;
    cmdInsert.CommandType = cmdInsertType;
    if (cmdInsertParms != null) 
    {
    foreach (SqlParameter parm in cmdInsertParms)
    cmdInsert.Parameters.Add(parm);
    }
    dsCommand.InsertCommand = cmdInsert;
    }
    if(cmdUpdateText != String.Empty)
    {
    SqlCommand cmdUpdate = new SqlCommand();
    cmdUpdate.Connection = conn;
    cmdUpdate.CommandText = cmdUpdateText;
    cmdUpdate.CommandType = cmdUpdateType;
    if (cmdUpdateParms != null) 
    {
    foreach (SqlParameter parm in cmdUpdateParms)
    cmdUpdate.Parameters.Add(parm);
    }
    dsCommand.UpdateCommand = cmdUpdate;
    }
    if(cmdDeleteText != String.Empty)
    {
    SqlCommand cmdDelete = new SqlCommand();
    cmdDelete.Connection = conn;
    cmdDelete.CommandText = cmdDeleteText;
    cmdDelete.CommandType = cmdDeleteType;
    if (cmdDeleteParms != null) 
    {
    foreach (SqlParameter parm in cmdDeleteParms)
    cmdDelete.Parameters.Add(parm);
    }
    dsCommand.DeleteCommand = cmdDelete;
    }
    if(cmdInsertText == String.Empty && cmdUpdateText == String.Empty && cmdDeleteText == String.Empty)
    {
    SqlCommandBuilder scb = new SqlCommandBuilder(dsCommand);
    return false;
    }
    dsCommand.Update(dataset,tablename);
    if ( dataset.HasErrors )
    {
    dataset.Tables[tablename].GetErrors()[0].ClearErrors();
    return false;
    }
    else
    {
    dataset.AcceptChanges();
    return true;
    }
    } }
    #endregion
      

  3.   

    写成这样的
    public static aaa()
    可以直接调用,不过不能继承了
      

  4.   

    比如我新建一个类class,想在Form1中继承类class,来调出数据,如何继承它了?