
.NET与access连接怎么进行增删改查?请用代码实现。
我的这个项目只有表示层这一层,所以其他的没用上,只是在表示层内添加了一个类,就是要在这个类中进行增删改查、...
我的这个项目只有表示层这一层,所以其他的没用上,只是在表示层内添加了一个类,就是要在这个类中进行增删改查、
展开
展开全部
作用:利用DataReader阅读类,执行数据的“只向前”的读取。
问:什么是DataReader?
答:ADO.NET DataReader对象可以从数据库中检索只读、只进的数据流。因为每次在内存中的数据只有一行,所以使用DataReader可提高应用程序的性能并 减少系统开销。它还提供了未缓冲的数据流,该数据流使过程逻辑可以有效地按顺序处理从数据源中返回的结果。由于数据不在内存中缓存,所以在检索大量数据 时,DataReader是一种合适的选择。
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");//ACCESS链接字符串
OleDbConnection ConnAcc=new OleDbConnection (strConn); //OleDb链接类的实例化
ConnAcc.Open ();//打开数据库
string strSQL="SELECT * FROM 表名1";//SQL语句
OleDbCommand cmd = new OleDbCommand(strSQL,ConnAcc);//创建Command命令对象
OldDbDataReader dr=cmd.ExecuteReader();//创建DataReader对象,并调用ExecuteReader从数据源检索行
dr.Read();//启动阅读器的Read方法,返回行的每一列
//..数据读取..
备注
若要创建 OleDbDataReader,必须调用 OleDbCommand 对象的 ExecuteReader 方法,而不能直接使用构造函数。
在使用 OleDbDataReader 时,相关联的 OleDbConnection 忙于为 OleDbDataReader 服务,对 OleDbConnection 不能执行任何其他操作,只能关闭。这种情况会一直持续到调用 OleDbDataReader 的 Close 方法为止。例如,在调用 Close 之前,无法检索输出参数。
dr.Close();//关闭阅读器
ConnAcc.Close();//关闭数据库
作用:利用DataSet,DataAdapter读取数据。
问:什么是DataSet?
答:DataSet对象与ADO Recordset对象相似,但功能更为强大,并具有另一重要区别:DataSet始终是断开的。DataSet对象表示数据的缓存,具有类似数据的结 构,如表、列、关系和约束。但是,尽管DataSet可以像数据库那样运行,但重要的是要记住:DataSet对象不直接与数据或其他源数据进行交互。这 使得开发人员能够使用始终保持一致的编程模型,而不用理会源数据的驻留位置。
问:什么是DataAdapter?
答:DataAdapter对象在DataSet与数据源之间起桥梁作用。
//ACCESS链接字符串
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");
//OleDb链接类的实例化
OleDbConnection ConnAcc=new OleDbConnection (strConn);
//打开数据库
ConnAcc.Open ();
//要执行的SQL语句
string strSQL="SELECT * FROM 表名1 ";
//创建DataAdapter数据适配器实例
OleDbDataAdapter da=new OleDbDataAdapter(strSQL,ConnAcc);
//创建DataSet实例
DataSet ds=new DataSet();
//使用DataAdapter的Fill方法(填充),调用SELECT命令
da.Fill(ds,"自定义虚拟表名");
//关闭数据库
ConnAcc.Close ();
作用:利用ExecuteNonQuery,执行数据的插入、更新、删除。
问:什么是ExecuteNonQuery?
答:在ADO.NET中,ExecuteNonQuery方法用于执行不需要返回结果的命令,如插入、删除和更新等操作。
//ACCESS链接字符串
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");
OleDbConnection ConnAcc=new OleDbConnection (strConn); //OleDb链接类的实例化
ConnAcc.Open ();//打开数据库
string strSQL="INSERT INTO 表名1、UPDATE 表名1 SET、DELETE FROM 表名1";//插入、更新、删除的SQL语句
OleDbCommand cmd=new OleDbCommand (strSQL,ConnAcc);//创建Command命令对象
cmd.ExecuteNonQuery();//执行命令
ConnAcc.Close ();//关闭数据库
作用:利用ExecuteScalar统计数据。
问:什么是ExecuteScalar?
答:ExecuteScalar方法可以返回单个值,如求和、总行数等SQL语句的聚合函数。
//ACCESS链接字符串
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");
OleDbConnection ConnAcc=new OleDbConnection (strConn); //OleDb链接类的实例化
ConnAcc.Open ();//打开数据库
string strSQL="SELECT COUNT(*) FROM 表名1";//SQL统计,SUM等等
OleDbCommand cmd = new OleDbCommand(strSQL,ConnAcc);//创建Command命令对象
int intNum=(int)cmd.ExecuteScalar();//得到统计数,SUM则用double
ConnAcc.Close();//关闭数据库
注:使用SQL Server请将关键字OleDb改为Sql,并修改字符串strConn为SQL Server链接参数即可。
在 web.config 文件中:
<connectionStrings>
<add name="ACCESSCONNECTIONSTRING" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Socut.mdb"
providerName="System.Data.OleDb" />
</connectionStrings>
注: Data Source :可为绝对路径,相对路径
问:什么是DataReader?
答:ADO.NET DataReader对象可以从数据库中检索只读、只进的数据流。因为每次在内存中的数据只有一行,所以使用DataReader可提高应用程序的性能并 减少系统开销。它还提供了未缓冲的数据流,该数据流使过程逻辑可以有效地按顺序处理从数据源中返回的结果。由于数据不在内存中缓存,所以在检索大量数据 时,DataReader是一种合适的选择。
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");//ACCESS链接字符串
OleDbConnection ConnAcc=new OleDbConnection (strConn); //OleDb链接类的实例化
ConnAcc.Open ();//打开数据库
string strSQL="SELECT * FROM 表名1";//SQL语句
OleDbCommand cmd = new OleDbCommand(strSQL,ConnAcc);//创建Command命令对象
OldDbDataReader dr=cmd.ExecuteReader();//创建DataReader对象,并调用ExecuteReader从数据源检索行
dr.Read();//启动阅读器的Read方法,返回行的每一列
//..数据读取..
备注
若要创建 OleDbDataReader,必须调用 OleDbCommand 对象的 ExecuteReader 方法,而不能直接使用构造函数。
在使用 OleDbDataReader 时,相关联的 OleDbConnection 忙于为 OleDbDataReader 服务,对 OleDbConnection 不能执行任何其他操作,只能关闭。这种情况会一直持续到调用 OleDbDataReader 的 Close 方法为止。例如,在调用 Close 之前,无法检索输出参数。
dr.Close();//关闭阅读器
ConnAcc.Close();//关闭数据库
作用:利用DataSet,DataAdapter读取数据。
问:什么是DataSet?
答:DataSet对象与ADO Recordset对象相似,但功能更为强大,并具有另一重要区别:DataSet始终是断开的。DataSet对象表示数据的缓存,具有类似数据的结 构,如表、列、关系和约束。但是,尽管DataSet可以像数据库那样运行,但重要的是要记住:DataSet对象不直接与数据或其他源数据进行交互。这 使得开发人员能够使用始终保持一致的编程模型,而不用理会源数据的驻留位置。
问:什么是DataAdapter?
答:DataAdapter对象在DataSet与数据源之间起桥梁作用。
//ACCESS链接字符串
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");
//OleDb链接类的实例化
OleDbConnection ConnAcc=new OleDbConnection (strConn);
//打开数据库
ConnAcc.Open ();
//要执行的SQL语句
string strSQL="SELECT * FROM 表名1 ";
//创建DataAdapter数据适配器实例
OleDbDataAdapter da=new OleDbDataAdapter(strSQL,ConnAcc);
//创建DataSet实例
DataSet ds=new DataSet();
//使用DataAdapter的Fill方法(填充),调用SELECT命令
da.Fill(ds,"自定义虚拟表名");
//关闭数据库
ConnAcc.Close ();
作用:利用ExecuteNonQuery,执行数据的插入、更新、删除。
问:什么是ExecuteNonQuery?
答:在ADO.NET中,ExecuteNonQuery方法用于执行不需要返回结果的命令,如插入、删除和更新等操作。
//ACCESS链接字符串
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");
OleDbConnection ConnAcc=new OleDbConnection (strConn); //OleDb链接类的实例化
ConnAcc.Open ();//打开数据库
string strSQL="INSERT INTO 表名1、UPDATE 表名1 SET、DELETE FROM 表名1";//插入、更新、删除的SQL语句
OleDbCommand cmd=new OleDbCommand (strSQL,ConnAcc);//创建Command命令对象
cmd.ExecuteNonQuery();//执行命令
ConnAcc.Close ();//关闭数据库
作用:利用ExecuteScalar统计数据。
问:什么是ExecuteScalar?
答:ExecuteScalar方法可以返回单个值,如求和、总行数等SQL语句的聚合函数。
//ACCESS链接字符串
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("db1.mdb");
OleDbConnection ConnAcc=new OleDbConnection (strConn); //OleDb链接类的实例化
ConnAcc.Open ();//打开数据库
string strSQL="SELECT COUNT(*) FROM 表名1";//SQL统计,SUM等等
OleDbCommand cmd = new OleDbCommand(strSQL,ConnAcc);//创建Command命令对象
int intNum=(int)cmd.ExecuteScalar();//得到统计数,SUM则用double
ConnAcc.Close();//关闭数据库
注:使用SQL Server请将关键字OleDb改为Sql,并修改字符串strConn为SQL Server链接参数即可。
在 web.config 文件中:
<connectionStrings>
<add name="ACCESSCONNECTIONSTRING" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Socut.mdb"
providerName="System.Data.OleDb" />
</connectionStrings>
注: Data Source :可为绝对路径,相对路径
2011-06-08
展开全部
和 Sql 几乎一样
配置文件:配置连接字符
<connectionStrings>
<add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Flora\Web\App_Data\data.mdb;" providerName="System.Data.OleDb"/>
</connectionStrings>
获得连接类
public class DataManagement
{
private static OleDbConnection connection;
public static OleDbConnection Connection
{
get
{
if (connection == null)
{
connection = new OleDbConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed) //关闭
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken) //中断
{
connection.Close();
connection.Open();
}
return connection;
}
}
}
Model类和数据库操作方法,这里为了方便我把方法直接写在Model类里了
public class Contact
{
public int Id { get; set; }
public string ContentCn { get; set; }
public string ContentEn { get; set; }
public string Img { get; set; }
#region 查询方法
/// <summary>
/// 获取对象
/// </summary>
/// <returns></returns>
public static IList<Contact> GetContact()
{
OleDbConnection connection = DataManagement.Connection;
string sql = "select * from [Contact]";
OleDbCommand cmd = new OleDbCommand(sql, connection);
OleDbDataReader dr = cmd.ExecuteReader();
IList<Contact> list = new List<Contact>();
Contact c = new Contact();
if (dr.Read())
{
c.Id = dr.GetInt32(0);
c.ContentCn = dr.GetValue(1).ToString();
c.ContentEn = dr.GetValue(2).ToString();
c.Img=dr.GetValue(2).ToString();
list.Add(c);
}
dr.Close();
connection.Close();
return list;
}
/// <summary>
/// 获取对象
/// </summary>
/// <returns></returns>
public static Contact GetContact1()
{
OleDbConnection connection = DataManagement.Connection;
string sql = "select * from [Contact]";
OleDbCommand cmd = new OleDbCommand(sql, connection);
OleDbDataReader dr = cmd.ExecuteReader();
Contact c = new Contact();
if (dr.Read())
{
c.Id = dr.GetInt32(0);
c.ContentCn = dr.GetValue(1).ToString();
c.ContentEn = dr.GetValue(2).ToString();
c.Img = dr.GetValue(2).ToString();
}
dr.Close();
connection.Close();
return c;
}
#endregion
#region 增删改
/// <summary>
/// 新增
/// </summary>
public void Add()
{
OleDbConnection connection = DataManagement.Connection;
string sql = "Insert into [Contact] (ContentCn, ContentEn,Img) values ('" +
ContentCn + "','" + ContentEn + "','"+Img+"')";
OleDbCommand cmd = new OleDbCommand(sql, connection);
cmd.ExecuteNonQuery();
connection.Close();
}
/// <summary>
/// 更新
/// </summary>
public void Update()
{
OleDbConnection connection = DataManagement.Connection;
string sql = "Update [Contact] set ContentCn='" + ContentCn + "', ContentEn='" + ContentEn +
"' where Id=" + Id;
OleDbCommand cmd = new OleDbCommand(sql, connection);
cmd.ExecuteNonQuery();
connection.Close();
}
/// <summary>
/// 删除
/// </summary>
public void Update()
{
OleDbConnection connection = DataManagement.Connection;
string sql = "delete from [Contact] where Id=" + Id;
OleDbCommand cmd = new OleDbCommand(sql, connection);
cmd.ExecuteNonQuery();
connection.Close();
}
#endregion
}
配置文件:配置连接字符
<connectionStrings>
<add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Flora\Web\App_Data\data.mdb;" providerName="System.Data.OleDb"/>
</connectionStrings>
获得连接类
public class DataManagement
{
private static OleDbConnection connection;
public static OleDbConnection Connection
{
get
{
if (connection == null)
{
connection = new OleDbConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed) //关闭
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken) //中断
{
connection.Close();
connection.Open();
}
return connection;
}
}
}
Model类和数据库操作方法,这里为了方便我把方法直接写在Model类里了
public class Contact
{
public int Id { get; set; }
public string ContentCn { get; set; }
public string ContentEn { get; set; }
public string Img { get; set; }
#region 查询方法
/// <summary>
/// 获取对象
/// </summary>
/// <returns></returns>
public static IList<Contact> GetContact()
{
OleDbConnection connection = DataManagement.Connection;
string sql = "select * from [Contact]";
OleDbCommand cmd = new OleDbCommand(sql, connection);
OleDbDataReader dr = cmd.ExecuteReader();
IList<Contact> list = new List<Contact>();
Contact c = new Contact();
if (dr.Read())
{
c.Id = dr.GetInt32(0);
c.ContentCn = dr.GetValue(1).ToString();
c.ContentEn = dr.GetValue(2).ToString();
c.Img=dr.GetValue(2).ToString();
list.Add(c);
}
dr.Close();
connection.Close();
return list;
}
/// <summary>
/// 获取对象
/// </summary>
/// <returns></returns>
public static Contact GetContact1()
{
OleDbConnection connection = DataManagement.Connection;
string sql = "select * from [Contact]";
OleDbCommand cmd = new OleDbCommand(sql, connection);
OleDbDataReader dr = cmd.ExecuteReader();
Contact c = new Contact();
if (dr.Read())
{
c.Id = dr.GetInt32(0);
c.ContentCn = dr.GetValue(1).ToString();
c.ContentEn = dr.GetValue(2).ToString();
c.Img = dr.GetValue(2).ToString();
}
dr.Close();
connection.Close();
return c;
}
#endregion
#region 增删改
/// <summary>
/// 新增
/// </summary>
public void Add()
{
OleDbConnection connection = DataManagement.Connection;
string sql = "Insert into [Contact] (ContentCn, ContentEn,Img) values ('" +
ContentCn + "','" + ContentEn + "','"+Img+"')";
OleDbCommand cmd = new OleDbCommand(sql, connection);
cmd.ExecuteNonQuery();
connection.Close();
}
/// <summary>
/// 更新
/// </summary>
public void Update()
{
OleDbConnection connection = DataManagement.Connection;
string sql = "Update [Contact] set ContentCn='" + ContentCn + "', ContentEn='" + ContentEn +
"' where Id=" + Id;
OleDbCommand cmd = new OleDbCommand(sql, connection);
cmd.ExecuteNonQuery();
connection.Close();
}
/// <summary>
/// 删除
/// </summary>
public void Update()
{
OleDbConnection connection = DataManagement.Connection;
string sql = "delete from [Contact] where Id=" + Id;
OleDbCommand cmd = new OleDbCommand(sql, connection);
cmd.ExecuteNonQuery();
connection.Close();
}
#endregion
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询