這個功能的類我早就寫好
才5分,不給

解决方案 »

  1.   

    最近自己也刚作了个系统,一个是c/s模式的,一个是三层模式的(没有布置好,事务还不怎么清楚)
    自己写的,版主,你看看,分没有也不要紧,助人为乐,大家一起进步,我也是菜鸟
    先定义一个DataSet(UserDataSet )
    自己定义了一个类(Manager) ---用于读取数据库中的记录
    using System;
    using System.Data;
    using System.Data.SqlClient;string strCon = "server=localhost;uid=sa;pwd=;database=MyData" ;
    或者(string strCon=System.Configuration.ConfigurationSettings.AppSettings["HeXuDongSoftWare.ConnectionString"];)                 
                      /// <summary>
    /// 得到所有登陆用户
    /// </summary>
    /// <returns></returns>
    public Users GetUsers()
    {
    UserDataSet ds=GetUsers("");
    return new Users(ds);
    }protected UserDataSet GetUsers(string strCondition)
    {
    UserDataSet ds=new UserDataSet();

    try

    SqlConnection aConnection = new SqlConnection(strCon);
    // 打开指向数据库连接
    aConnection.Open ( ) ; string strSQL="SELECT * FROM Users" + strCondition;
     
    SqlDataAdapter sqlDA=new SqlDataAdapter(strSQL,aConnection);
     
    sqlDA.Fill(ds,"Users");
    aConnection.Close();
    }
    catch(Exception e)
    {
    throw e;
    }
    return ds;
    }自己建立一个类User(设置属性),最好利用StringDictionary 和另一个类Users(要继承System.Collections.CollectionBase,类里应该用到IList类,即IList pIList=base.List)
    User和Users类,都要和UserDataSet结合使用。再定义一个类MyProcess(用来插入,更新和删除数据库记录)public User SaveUser(User objUser)
    {
    if(objUser.ID==0)
    {
    objUser.ID=InsertUser(objUser);
    }
    else
    {
    UpdateUser(objUser);
    }
    return objUser;
    }protected long InsertUser(User obj)
    {
    long indentity=0;
    try
    {
    SqlConnection aConnection = new SqlConnection(strCon);
    // 打开指向数据库连接
    aConnection.Open ( ) ;
    SqlCommand cmdInsert=new SqlCommand();
    cmdInsert.Connection=aConnection;
                    //设置 INSERT 命令
    string strSQL="INSERT INTO Users"+
    "(Code,Name,State,Password)"+
    "Values(@Code,@Name,@State,@Password)";                
    cmdInsert.CommandText=strSQL;
                    //设置相应的INSERT 命令中的参数值
    cmdInsert.Parameters.Add(new SqlParameter("@Code",obj.Code));
    cmdInsert.Parameters.Add(new SqlParameter("@Name",obj.Name));
    cmdInsert.Parameters.Add(new SqlParameter("@State",obj.State));
    cmdInsert.Parameters.Add(new SqlParameter("@Password",obj.Password));
                    //把纪录插入表中
    cmdInsert.ExecuteNonQuery();
                    //取得ID值
    cmdInsert.CommandText="SELECT @@IDENTITY as ID "; 
    SqlDataReader sqlReader=cmdInsert.ExecuteReader();
    sqlReader.Read();
                    indentity=Convert.ToInt64(sqlReader["ID"]);
    sqlReader.Close();
                    //关闭数据库的连接
    aConnection.Close();  
    }
    catch(Exception excep)
    {
    throw excep;
    }
    return indentity;
    } protected void UpdateUser(User obj)
    {
    try
    {
    SqlConnection aConnection = new SqlConnection(strCon);
    // 打开指向数据库连接
    aConnection.Open ( ) ;
    SqlCommand cmdUpdate=new SqlCommand();
    cmdUpdate.Connection=aConnection;
    //设置 UPDATE 命令
    string strSQL="UPDATE Users SET "+
    "Code=@Code,Name=@Name,State=@State,Password=@Password  "+
    "WHERE ID=@ID ";            
    cmdUpdate.CommandText=strSQL;
    //设置相应的UPDATE命令中的参数值
    cmdUpdate.Parameters.Add(new SqlParameter("@ID",obj.ID));
    cmdUpdate.Parameters.Add(new SqlParameter("@Code",obj.Code));
    cmdUpdate.Parameters.Add(new SqlParameter("@Name",obj.Name));
    cmdUpdate.Parameters.Add(new SqlParameter("@State",obj.State));
    cmdUpdate.Parameters.Add(new SqlParameter("@Password",obj.Password));
    //执行UPDATE
    cmdUpdate.ExecuteNonQuery();
    //关闭数据库的连接
    aConnection.Close();
    }
    catch(Exception excep)
    {
    throw excep;
    }
    } public void DeleteUser(long ID)
    {
    try
    {
    SqlConnection aConnection = new SqlConnection(strCon);
    // 打开指向数据库连接
    aConnection.Open ( ) ;
    SqlCommand cmdDelete=new SqlCommand();
    cmdDelete.Connection=aConnection;
    //设置 DELETE 命令
    string strSQL="DELETE FROM Users  WHERE ID=@ID ";  
    cmdDelete.CommandText=strSQL;
    //设置相应的DELETE命令中的参数值
    cmdDelete.Parameters.Add(new SqlParameter("@ID",ID));
    //执行DELETE
    cmdDelete.ExecuteNonQuery();
    //关闭数据库的连接
    aConnection.Close();
    }
    catch(Exception excep)
    {
    throw excep;
    }
    }我都测试过的,用过的,很方便的,你去试试
      

  2.   

    谢谢,但我想做到这一点,有时只插入一个字段,有时可能插入两个字段