如何在asp.net中调用类方法 [英] How to invoke class method in asp.net

查看:94
本文介绍了如何在asp.net中调用类方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在asp.net中创建了一个类文件我想在其他页面上使用类方法。

I am created one class file in asp.net i want to use the class method on other pages.

using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Data.Common;
public class General_function
{
    internal System.Windows.Forms.DataGridView DG_ItemShow;
    public static object Get_Single_Value(string SQLQuery)
    {
        try
        {
            object SingleValue = null;
            DbConnection cn = database_Object.GetConnection(database_Object.Provider);
            DbCommand cmd = database_Object.GetCommand(database_Object.Provider);
            if (cn.State == ConnectionState.Closed)
            {
                cn.ConnectionString = My.Settings.Trasns_DataConnectionString;
                cn.Open();
            }
            cmd.Connection = cn;
            cmd.CommandText = SQLQuery;

            SingleValue = cmd.ExecuteScalar;

            return SingleValue;
        }
        catch (Exception ex)
        {
            Interaction.MsgBox("error in Get_Single_Value :  " + ex.Message);
        }
    }

    public static long get_Max_value(string tablename, string fieldname)
    {
        try
        {
            long maxvalue = 0;
            DbConnection cn = database_Object.GetConnection(database_Object.Provider);
            DbCommand cmd = database_Object.GetCommand(database_Object.Provider);
            if (cn.State == ConnectionState.Closed)
            {
                cn.ConnectionString = My.Settings.Trasns_DataConnectionString;
                cn.Open();
            }
            cmd.Connection = cn;
            cmd.CommandText = "select max(" + fieldname + ") From " + tablename;
            string res = null;
            res = cmd.ExecuteScalar.ToString;
            if (string.IsNullOrEmpty(res))
            {
                maxvalue = 0;
            }
            else
            {
                maxvalue = long.Parse(res);
            }
            return maxvalue;
        }
        catch (Exception ex)
        {
            Interaction.MsgBox("Error in get_Max_value" + ex.Message);
        }
    }
    public static int Save_Record(ArrayList Al, string TableName)
    {
        try
        {
            int Retval = 0;
            Trasns_DataDataSet ds = new Trasns_DataDataSet();
            DataTable dt = ds.Tables(TableName);
            ArrayList tal = new ArrayList();
            foreach (DataColumn cl in dt.Columns)
            {
                tal.Add(cl.ColumnName);
            }

            DbConnection cnn = default(DbConnection);
            cnn = database_Object.GetConnection(database_Object.Provider);
            cnn.ConnectionString = My.Settings.Trasns_DataConnectionString;
            cnn.Open();
            DbCommand cmd1 = default(DbCommand);
            cmd1 = database_Object.GetCommand(database_Object.Provider);
            cmd1.Connection = cnn;
            string n = null;
            for (int i = 0; i <= tal.Count - 1; i++)
            {
                n = "@" + tal(i).ToString;
                DbParameter pa = database_Object.GetParameter(database_Object.Provider);
                pa.ParameterName = n;
                pa.Value = Al(i);
                cmd1.Parameters.Add(pa);
            }

            n = "";
            string v = "";
            string sqlstr = "insert into " + TableName + " (";
            for (int i = 0; i <= tal.Count - 1; i++)
            {
                n = n + "," + tal(i).ToString;
                v = v + ",@" + tal(i).ToString;
            }
            n = Strings.Right(n, Strings.Len(n) - 1);
            v = Strings.Right(v, Strings.Len(v) - 1);
            sqlstr = sqlstr + n + ") values (" + v + ")";
            cmd1.CommandText = sqlstr;
            Retval = cmd1.ExecuteNonQuery;
            return Retval;
        }
        catch (Exception ex)
        {
            Interaction.MsgBox("error in  Save_Record :  " + ex.Message);
        }
    }

    public static int Delete_Record(ArrayList AlName, ArrayList AlValue, string TableName)
    {
        try
        {
            int Retval = 0;
            DbConnection cnn = default(DbConnection);
            cnn = database_Object.GetConnection(database_Object.Provider);
            cnn.ConnectionString = My.Settings.Trasns_DataConnectionString;
            cnn.Open();
            DbCommand cmd1 = default(DbCommand);
            cmd1 = database_Object.GetCommand(database_Object.Provider);
            cmd1.Connection = cnn;
            string m = null;
            for (int i = 0; i <= AlName.Count - 1; i++)
            {
                m = "@" + AlName(i).ToString;
                DbParameter pa = database_Object.GetParameter(database_Object.Provider);
                pa.ParameterName = m;
                pa.Value = AlValue(i);
                cmd1.Parameters.Add(pa);
            }

            string sqlstr = "delete from " + TableName + " where ";

            string v = "";
            for (int i = 0; i <= AlName.Count - 1; i++)
            {
                v = v + " And " + AlName(i).ToString + "=@" + AlName(i).ToString;
            }
            v = Strings.Right(v, Strings.Len(v) - 4);
            sqlstr = sqlstr + v;
            cmd1.CommandText = sqlstr;
            Retval = cmd1.ExecuteNonQuery;
            return Retval;
        }
        catch (Exception ex)
        {
            Interaction.MsgBox("error in Delete_Record :  " + ex.Message);
        }
    }
    public static int Modify_Record(ArrayList AlName, ArrayList AlValue, ArrayList AlPKName, ArrayList AlPKValue, string TableName)
    {
        try
        {
            int Retval = 0;
            DbConnection cnn = default(DbConnection);
            cnn = database_Object.GetConnection(database_Object.Provider);
            cnn.ConnectionString = My.Settings.Trasns_DataConnectionString;
            cnn.Open();
            DbCommand cmd1 = default(DbCommand);
            cmd1 = database_Object.GetCommand(database_Object.Provider);
            cmd1.Connection = cnn;
            string m = null;
            //values parameters
            for (int i = 0; i <= AlName.Count - 1; i++)
            {
                m = "@" + AlName(i).ToString;
                DbParameter pa = database_Object.GetParameter(database_Object.Provider);
                pa.ParameterName = m;
                pa.Value = AlValue(i);
                cmd1.Parameters.Add(pa);
            }

            //primary key column parameters
            for (int i = 0; i <= AlPKName.Count - 1; i++)
            {
                m = "@" + AlPKName(i).ToString;
                DbParameter pa = database_Object.GetParameter(database_Object.Provider);
                pa.ParameterName = m;
                pa.Value = AlPKValue(i);
                cmd1.Parameters.Add(pa);
            }
            string sqlstr = "update " + TableName + " set ";

            string v = "";
            for (int i = 0; i <= AlName.Count - 1; i++)
            {
                v = v + "," + AlName(i).ToString + "=@" + AlName(i).ToString;
            }
            string w = "";
            for (int i = 0; i <= AlPKName.Count - 1; i++)
            {
                w = w + " And " + AlPKName(i).ToString + "=@" + AlPKName(i).ToString;
            }
            v = Strings.Right(v, Strings.Len(v) - 1);
            w = Strings.Right(w, Strings.Len(w) - 4);
            sqlstr = sqlstr + v + " Where " + w;
            cmd1.CommandText = sqlstr;
            Retval = cmd1.ExecuteNonQuery;
            return Retval;
        }
        catch (Exception ex)
        {
            Interaction.MsgBox("error in Modify_Record :  " + ex.Message);
        }
    }

    


    public static DataTable RecordSearch(string SqlString, string TableName)
    {
        try
        {
            DbConnection cnn = default(DbConnection);
            cnn = database_Object.GetConnection(database_Object.Provider);
            cnn.ConnectionString = My.Settings.Trasns_DataConnectionString;
            cnn.Open();
            Trasns_DataDataSet ds = new Trasns_DataDataSet();
            DataTable dt = default(DataTable);
            DbDataAdapter da = database_Object.GetAdapter(database_Object.Provider);
            DbCommand cmd = database_Object.GetCommand(database_Object.Provider);
            cmd.Connection = cnn;
            cmd.CommandText = SqlString;
            da.SelectCommand = cmd;
            da.Fill(ds, TableName);
            dt = ds.Tables(TableName);

            cnn.Close();
            cmd.Dispose();
            da.Dispose();
            cnn.Dispose();
            return dt;
        }
        catch (Exception ex)
        {
            Interaction.MsgBox("error in RecordSearch :  " + ex.Message);
        }
    }
   


    }
   
}



如何在其他页面中调用Get_Single_value()方法。

如何在其他页面中调用Delete_Record()方法。

请帮助我..

在此先感谢...


How can call the Get_Single_value()method in the other pages.
How can call the Delete_Record ()method in the other pages.
Please help me..
Thanks in advance...

推荐答案

因为这是一种基本的方法:



只需在您想要使用的地方添加此行。

as this is a staic method:

Just add this line wherever you'd like to use it.
General_function.Get_Single_Value("Your SQL Query goes here");





但是这个方法可能没有是线程安全的,因为多个线程可以一次访问database_Object(它也必须是一个静态对象)。你需要确保你的database_Objects是线程安全的。



另外你应该确保在通话结束后释放资源,否则你可能会得到很多打开连接(如果你使用连接池机制会遇到问题)



如果 DbConnection DbCommand 实现IDisposable接口使用它们如下:





However this method might not be threadsafe as multiple threads could access the database_Object at once (which has to bee a static object too). You'll need to make sure that your database_Objects are threadsafe.

In addition you should make sure to release the resources after the call otherwise you might end up with lots of open connection (running into problems if you're using a connection pooling mechanism)

If the DbConnection and DbCommand implement the IDisposable Interface use them like this:

using(var cn = database_Object.GetConnection(database_Object.Provider)) {
   if(cn.State == ConnectionState.Closed) {
      cn.ConnectionString = My.Settings.Trasns_DataConnectionString;
      cn.Open();
   }
   using(var cmd = database_Object.GetCommand(database_Object.Provider)){
      cmd.Connection = cn;
      cmd.CommandText = SQLQuery; 
      return cmd.ExecuteScalar; 
   }
}





您甚至不必使用异常处理来关闭连接声明负责处理这些对象。



You won't even have to use exception handling to close the connections as the using statement takes care of disposing those objects.


这篇关于如何在asp.net中调用类方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆