你是不是要实现一个数据操作的访问类?
using System;
using MySQLDriverCS;namespace DBConvert.DataAccessLayer
{
/// <summary>
/// 针对Mysql的数据库访问基础
/// </summary>
public class DBE
{
private MySQLDriverCS.MySQLConnection myCn=null;
/// <summary>
/// 构造
/// </summary>
/// <param name="mySqlConnObj">MySQLConnectionString</param>
public DBE(MySQLConnectionString mySqlConnObj)
{
myCn.ConnectionString=mySqlConnObj.AsString;
myCn.Open();
}
public DBE(string sHost,string sDataBase,string sUserID,string sPasswd)
{
myCn=new MySQLConnection(new MySQLConnectionString(sHost,sDataBase,sUserID,sPasswd).AsString);
try
{
myCn.Open();
}
catch(System.Exception ex)
{
System.Console.WriteLine("Ex:"+ex.Message);
}
}
/// <summary>
/// 得到data set
/// </summary>
/// <param name="sSQL">sql</param>
/// <returns></returns>
public System.Data.DataSet GetDataSetBySQL(string sSQL)
{
MySQLDriverCS.MySQLDataAdapter myAD=new MySQLDataAdapter(sSQL,myCn);
System.Data.DataSet tempDs=new System.Data.DataSet();
tempDs.Tables.Clear();
try
{
myAD.Fill(tempDs);
myCn.Close();
}
catch(System.Exception ex)
{
System.Console.WriteLine("[OnError:]"+sSQL+" Type:"+ex.Message);
System.Console.ReadLine();
}
return tempDs;
}
public void DoNonQuery(string sSQL)
{
try
{
MySQLDriverCS.MySQLDataAdapter myAD=new MySQLDataAdapter(sSQL,myCn);
}
catch(System.Exception ex)
{
System.Console.WriteLine("Ex:"+ex.Message);
}
}
}

}
这个类是用于Mysql的

解决方案 »

  1.   

    你要用的时候只要new 以下这个类,然后就可以得到相应的DataSet
      

  2.   

    using System;
    using System.Data;
    using System.Data.OleDb;
    using System.Collections;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Web;
    using System.Web.Services;namespace myWebService
    {
    /// <summary>
    /// myWS 的摘要说明。
    /// </summary>
    public class myWS : System.Web.Services.WebService
    {
    public String connStr = "Provider=\"OraOLEDB.Oracle\";User ID=YANFA;Password=YANFA;Data Source=SCGL;";
    public String connStr_MSDAORA = "Provider=\"MSDAORA.1\";User ID=YANFA;Data Source=SCGL;Password=YANFA";
    public Boolean myConnFlag;
    public OleDbConnection myConn;
    public OleDbCommand myCommand;
    public DataSet myDataSet;
    public OleDbDataReader myDataReader;
    public System.Data.DataTable myDataTable;
    public OleDbDataAdapter myDataAdapter;
    public OleDbCommandBuilder myCommandBuilder; public myWS()
    {
    //CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
    InitializeComponent();
    }
    #region 组件设计器生成的代码

    //Web 服务设计器所必需的
    private IContainer components = null;

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    } /// <summary>
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if(disposing && components != null)
    {
    components.Dispose();
    }
    base.Dispose(disposing);
    }

    #endregion #region 打开数据库连接
    public void dbOpen()
    {
    myConn = new OleDbConnection(connStr);
    myConn.Open();
    }
    #endregion #region 关闭数据库连接
    public void dbClose()
    {
    myConn.Close();
    }
    #endregion #region 获得OleDbDataReader对象
    public OleDbDataReader GetReader(string str_Sql)
    {
    dbOpen();
    myCommand = new OleDbCommand(str_Sql,myConn);
    try
    {
    myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
    }
    catch(Exception e)
    {
    Console.WriteLine(e.ToString());
    }
    return myDataReader;
    }
    #endregion #region [WebMethod] 测试数据库是否连通
    [WebMethod]
    public bool dbConnect()
    {
    myConnFlag=false;
    try
    {
    myConn = new OleDbConnection(connStr);
    myConn.Open();
    String strSql="select column_name from cols where table_name='oracle_connect_test'";
    myCommand=new OleDbCommand(strSql,myConn);
    myCommand.ExecuteNonQuery();
    myConnFlag=true;
    }
    catch(Exception e)
    {
    Console.WriteLine(e.ToString());
    }
    finally
    {
    myConn.Close();
    }
    return myConnFlag;
    }
    #endregion #region [WebMethod] 直接执行SQL语句
    [WebMethod]
    public bool ExecSql(string str_Sql)
    {
    dbOpen();
    myCommand = new OleDbCommand(str_Sql,myConn);
    try
    {
    myCommand.ExecuteNonQuery();
    return true;
    }
    catch(Exception e)
    {
    Console.WriteLine("操作失败,原因如下:\r\n\r\n"+e.ToString());
    return false;
    }
    finally
    {
    dbClose();
    }
    }
    #endregion #region [WebMethod] 获得DataSet对象(sql语句,表名)
    [WebMethod]
    public DataSet GetDs(string str_Sql,string str_Table)
    {
    dbOpen();
    myDataAdapter = new OleDbDataAdapter(str_Sql,myConn);
    myDataSet = new DataSet();
    myDataAdapter.FillSchema(myDataSet,SchemaType.Source,str_Table);
    myDataAdapter.Fill(myDataSet,str_Table);
    dbClose(); return myDataSet;
    }
    #endregion #region [WebMethod] 获得空DataSet对象,只带数据结构(sql语句,表名)
    [WebMethod]
    public DataSet GetEmpDs(string str_Sql,string str_Table)
    {
    dbOpen();
    myDataAdapter = new OleDbDataAdapter(str_Sql,myConn);
    myDataSet = new DataSet();
    myDataAdapter.FillSchema(myDataSet,SchemaType.Source,str_Table);
    dbClose(); return myDataSet;
    }
    #endregion #region [WebMethod] 获得空DataSet对象,只带数据结构(sql语句,表名)
    [WebMethod]
    public DataSet GetTemplateDs(string str_Sql,string str_Table)
    {
    dbOpen();
    myDataAdapter = new OleDbDataAdapter(str_Sql,myConn);
    myDataSet = new DataSet();
    myDataAdapter.Fill(myDataSet,str_Table);
    myDataSet.Tables[0].Rows.Clear();
    dbClose(); return myDataSet;
    }
    #endregion #region [WebMethod] 根据序号得到特定值
    [WebMethod]
    public string GetValue(string ColumnCode,string TableName,string ColumnName,string TextName)
    {
    string ValueText="0";
    string strSql;
    strSql = "select "+ColumnCode+" from "+TableName+" where "+ColumnName+"='"+TextName+"'"; OleDbDataReader myDataReader=GetReader(strSql);
    while (myDataReader.Read())
    {
    ValueText=myDataReader[0].ToString();
    }
    myDataReader.Close();
    dbClose();
    return ValueText;
    }
    #endregion #region [WebMethod] 根据sql得到特定值
    [WebMethod]
    public string GetSqlValue(string strSql)
    {
    string ValueText="0"; OleDbDataReader myDataReader=GetReader(strSql);
    while (myDataReader.Read())
    {
    ValueText=myDataReader[0].ToString();
    }
    myDataReader.Close();
    dbClose(); return ValueText;
    }
    #endregion #region [WebMethod] 得到str_table表str_Id字段最大ID值
    [WebMethod]
    public int GetMaxId(string str_Id,string str_table)
    {
    int intMaxId=-1;
    string strSql = "select Max("+str_Id+") from "+str_table; OleDbDataReader myDataReader=GetReader(strSql);
    while (myDataReader.Read())
    {
    intMaxId = int.Parse(myDataReader[0].ToString());
    }
    myDataReader.Close();
    dbClose(); return intMaxId;
    }
    #endregion #region [WebMethod] 根据名称得到对应代码数量
    [WebMethod]
    public int GetCode(string ColumnCode,string TableName,string ColumnName,string TextName)
    {
    int Count=-1;
    string strSql;
    strSql = "select count("+ColumnCode+") from "+TableName+" where "+ColumnName+"='"+TextName+"'"; dbOpen();
    OleDbCommand cmd = new OleDbCommand(strSql,myConn);
    Count=int.Parse(cmd.ExecuteScalar().ToString());
    dbClose(); return Count;
    }
    #endregion #region [WebMethod] 返回一维字符串组(逗号分隔符)
    [WebMethod]
    public string getStrGroup(string strSql)
    {
    String mySql="";
    OleDbDataReader myDataReader=GetReader(strSql);
    while (myDataReader.Read())
    {
    mySql+=myDataReader[0].ToString()+",";
    }
    myDataReader.Close();
    dbClose(); if(mySql!="")
    {
    mySql=mySql.Substring(0,mySql.Length-1);
    }
    return mySql;
    }
    #endregion #region [WebMethod] 得到记录数
    [WebMethod]
    public int GetRsCount(string str_SqlAndWhere)
    {
    int Count=-1;
    string strSql;
    strSql = "select count(*) from "+str_SqlAndWhere; dbOpen();
    OleDbCommand cmd = new OleDbCommand(strSql,myConn);
    strSql=cmd.ExecuteScalar().ToString();
    dbClose(); Count = int.Parse(strSql);
    return Count;
    }
    #endregion