我定义了一个类,内容如下:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data.Sql;
using   System.Web;
namespace DatabaseOp
{
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    public class OPS_User 
    { private static readonly String User_query_all = "select * from OPS_User";
        private static readonly string User_query_name = "select * form OPS_User where UserName = @UserName";
        private static readonly String User_delete_by_name = "delete from OPS_User where UserName = @UserName";
        private static readonly String User_add = "insert into OPS_User(UserName,Password,UserClass,Email) values(@name,@pwd,@uclass,@email)";
        public string Afile = System.Web.HttpContext.Current.Server.MapPath("OPS.mdb");
        OleDbConnection AconnStr = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "Afile" + ";");
 public void insertUser(string name, string pwd, int uclass, string email)
        {
            OleDbConnection conn = null;
            conn = new OleDbConnection(AconnStr);
            conn.Open();
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = conn;
            cmd.CommandText = OPS_User.User_add;
            cmd.Parameters.Add("@name", OleDbType.VarChar);
            cmd.Parameters[0].Value = name;
            cmd.Parameters.Add("@pwd", OleDbType.VarChar);
            cmd.Parameters[1].Value = pwd;
            cmd.Parameters.Add("@uclass", OleDbType.Integer);
            cmd.Parameters[2].Value = uclass;
            cmd.Parameters.Add("@email", OleDbType.VarChar);
            cmd.Parameters[3].Value = email;
            cmd.ExecuteNonQuery();
                  }错误1:与“System.Data.OleDb.OleDbConnection.OleDbConnection(string)”最匹配的重载方法具有一些无效参数 (指向new OleDbConnection的new)
错误2: 无法从“System.Data.OleDb.OleDbConnection”转换为“string”       ( 指向的是conn = new OleDbConnection(AconnStr)中的AconnStr)
请教高手应该如何解决

解决方案 »

  1.   

    conn = new OleDbConnection(AconnStr); 你在上面的定义也知道赋一个字符串的连接参数,怎么在这里把oledbconnection 这个对象当成了字符串连接变量呢..
      

  2.   

    ??????????AconnStr 都是实例化过了,底下你还实例化干吗?
      
     public void insertUser(string name, string pwd, int uclass, string email) 
            { 
                OleDbConnection conn = null; 
                conn = new OleDbConnection(AconnStr); 
    AconnStr是字符串类型。不是      OleDbConnection AconnStr = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "Afile" + ";"); 
    这个类型的。
    AconnStr相当于你上面的"provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "Afile" + ";"); 
      

  3.   

    想再问一下
     public string Afile = System.Web.HttpContext.Current.Server.MapPath("OPS.mdb");
    OleDbConnection AconnStr = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Afile + ";");
    提示说上面的 Afile 字段初始值设定项无法引用非静态字段、方法或属性“DatabaseOp.OPS_User.Afile”是什么意思,我具体代码如下:
    namespace DatabaseOp
    {
        
        public class OPS_User
        {
            private static readonly String User_query_all = "select * from OPS_User";
            private static readonly string User_query_name = "select * form OPS_User where [UserName] = @UserName";
            private static readonly String User_delete_by_name = "delete from OPS_User where [UserName] = @UserName";
            private static readonly String User_add = "insert into OPS_User([UserName],[Password],[UserClass],[Email]) values (@name,@pwd,@uclass,@email)";
            public string Afile = System.Web.HttpContext.Current.Server.MapPath("OPS.mdb");
            OleDbConnection AconnStr = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Afile + ";");
    }