回 帖 发 新 帖 刷新版面

主题:[提问]关于access

哪位同仁帖一下你连接access数据库的c#代码,最好,表的字段有整数,货币,日期这几个类型,是实现数据的插入的代码?


小弟,在此先谢过了。。

回复列表 (共1个回复)

沙发

一.程序设计和运行的环境设置:

  (1).视窗2000服务器版

  (2).Microsoft Data Acess Component 2.6 以上版本 ( MDAC 2.6 )

  (3)..Net FrameWork SDK Beta 2

  为了更清楚的说明问题,在数据库的选用上,采用了当前比较典型的数据库,一个是本地数据库Access 2000,另外一个是远程数据库Sql Server 2000。其中本地数据库名称为"db.mdb",在其中定义了一张数据表"person","person"表的数据结构如下表:
字段名称    字段类型     字段意思
id     数字    序号
xm    文本    姓名
xb     文本    性别
nl     文本     年龄
zip    文本    邮政编码
  远程数据库Sql Server 2000的数据库服务器名称为"Server1",数据库名称为"Data1",登陆的ID为"sa",口令为空,在数据库也定义了一张"person"表,数据结构如上表。

  二.如何浏览数据:

 //创建一个 OleDbConnection
 string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;
 OleDbConnection myConn = new OleDbConnection ( strCon ) ;
 string strCom = " SELECT * FROM person " ;
 file://创建一个 DataSet
 myDataSet = new DataSet ( ) ;
 myConn.Open ( ) ;
 file://用 OleDbDataAdapter 得到一个数据集
 OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;
 file://把Dataset绑定books数据表
 myCommand.Fill ( myDataSet , "person" ) ;
 file://关闭此OleDbConnection
 myConn.Close ( ) ;
 myBind = this.BindingContext [ myDataSet , "person" ] ;

下列代码是以Sql Server 2000数据库为模型,创建一个名称为"myBind"的BindingManagerBase对象。

//设定数据连接字符串,此字符串的意思是打开Sql server数据库,
//服务器名称为server1,数据库为data1
 string strCon = "Provider = SQLOLEDB.1 ; Persist Security Info = False ;
   User ID = sa ; Initial Catalog = data1 ; Data Source = server1 " ;
 OleDbConnection myConn = new OleDbConnection ( strCon ) ;
 myConn.Open ( ) ;
 string strCom = " SELECT * FROM person " ;
file://创建一个 DataSet
 myDataSet = new DataSet ( ) ;
 file://用 OleDbDataAdapter 得到一个数据集
 OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;
 file://把Dataset绑定person数据表
 myCommand.Fill ( myDataSet , " person " ) ;
 file://关闭此OleDbConnection
 myConn.Close ( ) ;
 myBind = this.BindingContext [ myDataSet , "person" ] ;
得到了是同一数据源的BindingManagerBase对象,通过改变此对象的"Position"属性值,这样绑定数据的组件显示的数据就随之变化,从而实现导航数据记录。
  

    三、插入数据记录:  就是通过ADO.NET首先插入数据记录到数据库,然后对"DataSet"对象进行必要的修改。下列代码就是以Access 2000数据库为模型插入一条数据记录的代码
 protected void Insert_record ( object sender , System.EventArgs e )
 {
 try
 {
 file://判断所有字段是否添完,添完则执行,反之弹出提示 
 if ( t_id.Text != "" && t_xm.Text != "" && t_xb.Text != "" &&
 t_nl.Text != "" && t_books.Text != "" )
 {
 string myConn1 = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;
 OleDbConnection myConn = new OleDbConnection ( myConn1 ) ;
 myConn.Open ( ) ;
 string strInsert = " INSERT INTO person ( id , xm , xb , nl , zip ) VALUES ( " ;
 strInsert += t_id.Text + ", '" ;
 strInsert += t_xm.Text + "', '" ;
 strInsert += t_xb.Text + "', " ;
 strInsert += t_nl.Text + ", " ;
 strInsert += t_books.Text + ")" ;
 OleDbCommand inst = new OleDbCommand ( strInsert , myConn ) ;
 inst.ExecuteNonQuery ( ) ;
 myConn.Close ( ) ;
 myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . BeginEdit ( ) ;
 myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . EndEdit ( ) ;
 myDataSet.Tables [ "person" ] . AcceptChanges ( ) ;
 }
 else
 {
 MessageBox.Show ( "必须填满所有字段值!" , "错误!" ) ;
 }
 }
 catch ( Exception ed )
 {
 MessageBox.Show ( "保存数据记录发生 " + ed.ToString ( ) , "错误!" ) ;
 }
 }









  


我来回复

您尚未登录,请登录后再回复。点此登录或注册