我仿造SQLHelper写了一个处理Access2003的类,程序中部分是象这样:
using System;
using System.Configuration;
using System.Data;
using System.Collections;using System.Web;
using System.Data.OleDb;namespace SQLHelper
{
public abstract class AccessHelper
{ //Database connection strings
public static readonly string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+
System.Web.HttpContext.Current.Server.MapPath("../data/HJDB.mdb");
// Hashtable to store cached parameters
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable()); public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand(); using (OleDbConnection conn = new OleDbConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
。下面当然还有其他方法,我把这个编译为一个AccessHelper.dll了,然后,新建了一个网站项目,在新项目中引用了上面的AccessHelper.dll,
但是,在新项目的程序中,或者类程序中,却不能象下面这样使用其中的方法:
#using SQLHelper....
AccessHelper.ExecuteNonQuery(.....); //在这里报错说是AccessHelper没有ExecuteNonQuery这个属性
请问这是什么原因呢?
using System;
using System.Configuration;
using System.Data;
using System.Collections;using System.Web;
using System.Data.OleDb;namespace SQLHelper
{
public abstract class AccessHelper
{ //Database connection strings
public static readonly string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+
System.Web.HttpContext.Current.Server.MapPath("../data/HJDB.mdb");
// Hashtable to store cached parameters
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable()); public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand(); using (OleDbConnection conn = new OleDbConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
。下面当然还有其他方法,我把这个编译为一个AccessHelper.dll了,然后,新建了一个网站项目,在新项目中引用了上面的AccessHelper.dll,
但是,在新项目的程序中,或者类程序中,却不能象下面这样使用其中的方法:
#using SQLHelper....
AccessHelper.ExecuteNonQuery(.....); //在这里报错说是AccessHelper没有ExecuteNonQuery这个属性
请问这是什么原因呢?
想继续请教一个低级问题,我在程序里面这样用:
using System.Data;
using SQLHelper;/// <summary>
///clsDocumentsInfo:
/// </summary>
public class clsDocumentsInfo
{
//在这个地方不能使用AccessHelper
AccessHelper. //而是在下面的这些方法中都可以正常使用,这是为什么呢? public clsDocumentsInfo()
{
//
//TODO: 在此处添加构造函数逻辑
//
AccessHelper.ExecuteNoeQuery(...); } public int add()
{
AccessHelper.ExecuteNoeQuery(...); }
}
AccessHelper.ExecuteNonQuery(.....);
这句不是应该报不存在AccessHelper的编译错误吗