哪为大虾知道C#如何连接ACSESS数据库?最好给出连接代码
解决方案 »
- 求一 带.NET可编程性支持的OFFICE 2003
- gridview 绑定 空字符串 变成 空格
- 求助,修改图片属性的摘要信息。
- 苦思了很久,但是还是没有办法解决!(正则表达式)
- 怎么调用a.cs里的内容?(急,谢谢大家)
- C# DrawString 怎么设置字间距和行间距
- 哪位老大有C#开发P2P软件的经验(类似QQ),分享一下。谢谢!
- WPF,这个布局有点怪
- html做页面 通过Ajax传值 C#后台处理后,C#后台应该怎么传值回html的页面
- vs.net2003下如何使用配置文件app.config? 好像和vs.net2002不太一样.
- 如何判断DateTimePicker的输入焦点在什么区域
- 如何让DataTable_ColumnChanged只触发一次
public string myConnstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+HttpContext.Current.Server.MapPath("data.mdb"); //data.mdb是你的数据库名称
OleDbConnection MyConnection;
MyConnection = new OleDbConnection(myConnstring);
strInsert=""; //strinsert是你的sql语句
OleDbCommand MyCommand = new OleDbCommand(strInsert,MyConnection);
MyConnection.Open();
MyCommand.ExecuteNonQuery();
MyConnection.Close();
OleDbConnection MyConn=new OleDbConnection(connectionString);
MyConn.Open();
首先,先说说数据表结构,表名为“EmployeeInfo”。
字段名 类型 备注
EmployeeID Int 自增字段
EmployeeName Varchar(20)
Password Varchar(20)
Desciption Varchar(255)
接着,要先从Access数据库中读取数据,代码如下:
private const string TABLE_NAME = "EmployeeInfo";
private DataSet dsData = null;
private void btnLoad_Click(object sender, System.EventArgs e)
{
// Load data from access db file
OleDbConnection oleDBConn = new OleDbConnection();
oleDBConn.ConnectionString = yourDBConnectionString
try
{
oleDBConn.Open();//Open access db file
}
catch( Exception err )
{
MessageBox.Show( err.Message );
return;
}
string strQuery = "SELECT * FROM EmployeeInfo";
OleDbDataAdapter myDAdapter = new OleDbDataAdapter( strQuery, oleDBConn );
DataSet dsSource = new DataSet();
try
{
// Get data from access db file
myDAdapter.Fill( dsSource, TABLE_NAME );
// Release ado.net resource
myDAdapter.Dispose();
oleDBConn.Close();
}
catch( Exception err )
{
MessageBox.Show( err.Message );
oleDBConn.Close();
return;
}
// Process data set
ExchangeDS( out dsData, ref dsSource );
}
private void ExchangeDS( out DataSet dsDest, ref DataSet dsSource )
{
// Create new data set
dsDest = new DataSet( );
DataTable dtDest = new DataTable( TABLE_NAME );
dsDest.Tables.Add( dtDest );
// Add data column
dsDest.Tables[TABLE_NAME].Columns.Add(
new DataColumn( "EmployeeID", typeof(int) ) );
dsDest.Tables[TABLE_NAME].Columns.Add(
new DataColumn( "EmployeeName", typeof(string) ) );
dsDest.Tables[TABLE_NAME].Columns.Add(
new DataColumn( "Password", typeof(string) ) );
dsDest.Tables[TABLE_NAME].Columns.Add(
new DataColumn( "Description", typeof(string) ) );
// Add data row from source data set
while( dsSource.Tables[TABLE_NAME].Rows.Count > 0 )
{
DataRow dr = dsSource.Tables[TABLE_NAME].Rows[0];
dsDest.Tables[TABLE_NAME].Rows.Add( dr.ItemArray );
dsSource.Tables[TABLE_NAME].Rows.Remove( dr );
}
}
这里需要注意的是“ExchangeDS”函数,如果DataSet没有发生任何变化,那么用DataAdapter是无法更新数据库的,那么这个函数的目的造成DataSet中的记录发生变化,本来想用DataSet.Merge方法,发现也无法用DataAdapter来无法更新数据库的,因此只能一条记录一条记录进行复制了。
别人写的
我贴一下