用c#写一个数据库插入和更新的类,急用 這個功能的類我早就寫好才5分,不給 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最近自己也刚作了个系统,一个是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; } }我都测试过的,用过的,很方便的,你去试试 谢谢,但我想做到这一点,有时只插入一个字段,有时可能插入两个字段 网页提示错误“” 帮我讲下database,dataset和xml之间怎样互相传递啊,有点晕了。。。 为何不直接返回DataTable来用呢? 在一个页面能否使上一个页面的GridView中相应行的HyperLinkfield不可用? 麻烦帮我看看这段关于代理服务器的代码应该怎么写.. 简单奇怪的问题 C#操作MYSQL数据库错误信息 求救~~~~~~~~~~~ 为难?? COM接口的调用问题 Asp2.0 中Calendar日期控件问题 100分求《asp.net xml高级编程-c#编程篇》的源代码? 如何让C#程序只运行一次啊?
自己写的,版主,你看看,分没有也不要紧,助人为乐,大家一起进步,我也是菜鸟
先定义一个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;
}
}我都测试过的,用过的,很方便的,你去试试