在本篇文章中,我们将介绍Visual C#对数据库的一个基本操作,即:如何往数据库中添加记录。我们将通过一些数据库操作的例子,来具体说明一下。为了更清楚的说明这个问题,在选用数据库方面采用了二种当前比较典型的数据库,其一是本地数据库--Access 2000,另外一个是远程数据库--SQL SERVER 7.0。首先介绍如何用Visual C#来添加Access 2000数据库的记录。一.用Visual C#来添加Access 2000数据库的记录(一).程序设计和运行的环境设置:(1)视窗2000服务器版(2)Microsoft Data Acess Component 2.6 以上版本 ( MDAC 2.6 )(3)本文程序使用的数据库的介绍:程序中使用的数据库名称为sample.mdb,在此数据库中有一张数据表books。此数据表的结构如下:
字段名称
字段类型
代表意思
Bookid
数字
序号
booktitle
文本
书籍名称
bookauthor
文本
书籍作者
bookprice
数字
价格
bookstock
数字
书架号
(二).程序设计难点和应该注意的问题:如何正确的往数据库中添加记录是本文要讨论的一个重点和难点,下面就是解决这一问题的具体思路: (1)创建并打开一个 OleDbConnection对象。(2)创建一个插入一条记录的SQL语句。(3)创建一个OleDbCommand对象。(4)通过此OleDbCommand对象完成对插入一条记录到数据库的操作。以下是在程序中实现的具体语句:
string strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = sample.mdb " ;OleDbConnection myConn = new OleDbConnection ( strConn ) ;myConn.Open ( ) ;string strInsert = " INSERT INTO books ( bookid , booktitle , bookauthor , bookprice , bookstock ) VALUES ( " ;strInsert += t_bookid.Text + ", '" ;strInsert += t_booktitle.Text + "', '" ;strInsert += t_bookauthor.Text + "', " ;strInsert += t_bookprice.Text + ", " ;strInsert += t_bookstock.Text + ")" ;OleDbCommand inst = new OleDbCommand ( strInsert , myConn ) ;inst.ExecuteNonQuery ( ) ;myConn.Close ( ) ;
(三).用Visual C#来插入记录的程序源代码( add.cs )和执行后的界面:下图是add.cs编译后的执行界面:
add.cs源程序代码:
using System ;using System.Drawing ;using System.ComponentModel ;using System.Windows.Forms ;using System.Data.OleDb ;using System.Data ;//导入程序中使用到的名称空间public class DataAdd : Form {private Button lastrec ;private Button nextrec ;private Button previousrec ;private Button firstrec ;private Container components ;private Label title ;private Button t_new ;private Button save ;private TextBox t_bookstock ;private TextBox t_bookprice ;private TextBox t_bookauthor ;private TextBox t_booktitle ;private TextBox t_bookid ;private Label l_bookstock ;private Label l_bookprice ;private Label l_bookauthor ;private Label l_booktitle ;private Label l_bookid ;private DataSet myDataSet ;private BindingManagerBase myBind ;//定义在程序中要使用的组件public DataAdd ( ) {//连接到一个数据库GetConnected ( ) ;// 对窗体中所需要的内容进行初始化InitializeComponent ( );}//释放程序使用过的所以资源public override void Dispose ( ) {base.Dispose ( ) ;components.Dispose ( ) ;}public static void Main ( ) {Application.Run ( new DataAdd ( ) ) ;}public void GetConnected ( ){try{//创建一个 OleDbConnection对象string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = sample.mdb" ;OleDbConnection myConn = new OleDbConnection ( strCon ) ;string strCom = " SELECT * FROM books " ;//创建一个 DataSetmyDataSet = new DataSet ( ) ;myConn.Open ( ) ;//用 OleDbDataAdapter 得到一个数据集OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;//把Dataset绑定books数据表myCommand.Fill ( myDataSet , "books" ) ;//关闭此OleDbConnectionmyConn.Close ( ) ;}catch ( Exception e ){MessageBox.Show ( "连接错误! " + e.ToString ( ) , "错误" ) ;}}private void InitializeComponent ( ){components = new System.ComponentModel.Container ( ) ;nextrec = new Button ( ) ;lastrec = new Button ( ) ;previousrec = new Button ( ) ;firstrec = new Button ( ) ;t_bookprice = new TextBox ( ) ;l_booktitle = new Label ( ) ;l_bookprice = new Label ( ) ;l_bookauthor = new Label ( ) ;t_bookid = new TextBox ( ) ;save = new Button ( ) ;title = new Label ( ) ;t_bookauthor = new TextBox ( ) ;t_booktitle = new TextBox ( ) ;t_new = new Button ( ) ;l_bookstock = new Label ( ) ;t_bookstock = new TextBox ( ) ;l_bookid = new Label ( ) ;//以下是对数据浏览的四个按钮进行初始化firstrec.Location = new System.Drawing.Point ( 65 , 312 ) ;firstrec.ForeColor = System.Drawing.Color.Black ;firstrec.Size = new System.Drawing.Size ( 40 , 24 ) ;firstrec.Font = new System.Drawing.Font("仿宋", 8f );firstrec.Text = "首记录";firstrec.Click += new System.EventHandler(GoFirst);previousrec.Location = new System.Drawing.Point ( 135 , 312 ) ;previousrec.ForeColor = System.Drawing.Color.Black ;previousrec.Size = new System.Drawing.Size(40, 24) ;previousrec.Font = new System.Drawing.Font ( "仿宋" , 8f ) ;previousrec.Text = "上一条" ;previousrec.Click += new System.EventHandler ( GoPrevious ) ;nextrec.Location = new System.Drawing.Point ( 205 , 312 );nextrec.ForeColor = System.Drawing.Color.Black ;nextrec.Size = new System.Drawing.Size ( 40 , 24 ) ;nextrec.Font = new System.Drawing.Font ( "仿宋" , 8f ) ;nextrec.Text = "下一条" ;nextrec.Click += new System.EventHandler ( GoNext );lastrec.Location = new System.Drawing.Point ( 275 , 312 ) ;lastrec.ForeColor = System.Drawing.Color.Black ;lastrec.Size = new System.Drawing.Size ( 40 , 24 ) ;lastrec.Font = new System.Drawing.Font ( "仿宋" , 8f ) ;lastrec.Text = "尾记录" ;lastrec.Click += new System.EventHandler ( GoLast ) ;//以下是对显示标签进行初始化l_bookid.Location = new System.Drawing.Point ( 24 , 56 ) ;l_bookid.Text = "书本序号:" ;l_bookid.Size = new System.Drawing.Size ( 112, 20 ) ;l_bookid.Font = new System.Drawing.Font ( "仿宋" , 10f ) ;l_bookid.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;l_booktitle.Location = new System.Drawing.Point ( 24 , 108 ) ;l_booktitle.Text = "书 名:";l_booktitle.Size = new System.Drawing.Size ( 112 , 20 ) ;l_booktitle.Font = new System.Drawing.Font ( "仿宋" , 10f ) ;l_booktitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;l_bookprice.Location = new System.Drawing.Point ( 24 , 212 ) ;l_bookprice.Text = "价 格:" ;l_bookprice.Size = new System.Drawing.Size ( 112 , 20 ) ;l_bookprice.Font = new System.Drawing.Font ( "仿宋" , 10f ) ;l_bookprice.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;l_bookstock.Location = new System.Drawing.Point ( 24 , 264 ) ;l_bookstock.Text = "书 架 号:" ;l_bookstock.Size = new System.Drawing.Size ( 112 , 20 ) ;l_bookstock.Font = new System.Drawing.Font ( "仿宋" , 10f ) ;l_bookstock.TabIndex = 16 ;l_bookstock.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;l_bookauthor.Location = new System.Drawing.Point ( 24 , 160 ) ;l_bookauthor.Text = "作 者:" ;l_bookauthor.Size = new System.Drawing.Size ( 112 , 20 ) ;l_bookauthor.Font = new System.Drawing.Font ( "仿宋" , 10f ) ;l_bookauthor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;title.Location = new System.Drawing.Point ( 32 , 16 ) ;title.Text = "利用Vsiual C#来增加数据记录!" ;title.Size = new System.Drawing.Size ( 336 , 24 ) ;title.ForeColor = System.Drawing.Color.Green ;title.Font = new System.Drawing.Font ( "仿宋" , 14f , System.Drawing.FontStyle.Bold ) ;//以下是对为显示数据记录而设定的标签和文本框进行初始化,并把记录绑定在不同的绑定到文本框"Text"属性上t_bookid.Location = new System.Drawing.Point ( 184 , 56 ) ;t_bookid.Size = new System.Drawing.Size ( 80 , 20 ) ;t_bookid.DataBindings.Add ( "Text" , myDataSet , "books.bookid" ) ;t_bookstock.Location = new System.Drawing.Point ( 184 , 264 ) ;t_bookstock.Size = new System.Drawing.Size ( 80 , 20 ) ;t_bookstock.DataBindings.Add ( "Text" , myDataSet , "books.bookstock" ) ;t_booktitle.Location = new System.Drawing.Point ( 184 , 108 ) ;t_booktitle.Size = new System.Drawing.Size ( 176 , 20 ) ;t_booktitle.DataBindings.Add( "Text" , myDataSet , "books.booktitle" ) ;t_bookprice.Location = new System.Drawing.Point ( 184 , 212 ) ;t_bookprice.Size = new System.Drawing.Size ( 80 , 20 ) ;t_bookprice.DataBindings.Add ( "Text" , myDataSet , "books.bookprice" ) ;t_bookauthor.Location = new System.Drawing.Point ( 184 , 160 ) ;t_bookauthor.Size = new System.Drawing.Size ( 128 , 20 ) ;t_bookauthor.DataBindings.Add ( "Text" , myDataSet , "books.bookauthor" ) ;t_new.Location = new System.Drawing.Point ( 62 , 354 ) ;t_new.Size = new System.Drawing.Size ( 96 , 32 ) ;t_new.Text = "新建记录" ;t_new.Click += new System.EventHandler ( t_newClick ) ;save.Location = new System.Drawing.Point ( 222 , 354 ) ;save.Size = new System.Drawing.Size ( 96 , 32 ) ;save.TabIndex = 4 ;save.Text = "保存记录" ;save.Click += new System.EventHandler ( saveClick ) ;this.Text = "利用Vsiual C#来增加数据记录的程序窗口!" ;this.AutoScaleBaseSize = new System.Drawing.Size ( 5 , 13 ) ;this.FormBorderStyle = FormBorderStyle.Fixed3D ;this.ClientSize = new System.Drawing.Size ( 390 , 400 ) ;//在窗体中加入下列组件this.Controls.Add ( lastrec ) ;this.Controls.Add ( nextrec ) ;this.Controls.Add ( previousrec ) ;this.Controls.Add ( firstrec ) ;this.Controls.Add ( title ) ;this.Controls.Add ( t_new ) ;this.Controls.Add ( save ) ;this.Controls.Add ( t_bookstock ) ;this.Controls.Add ( t_bookprice ) ;this.Controls.Add ( t_bookauthor ) ;this.Controls.Add ( t_booktitle ) ;this.Controls.Add ( t_bookid ) ;this.Controls.Add ( l_bookstock ) ;this.Controls.Add ( l_bookprice ) ;this.Controls.Add ( l_bookauthor ) ;this.Controls.Add ( l_booktitle ) ;this.Controls.Add ( l_bookid ) ;//把对象DataSet和"books"数据表绑定到此myBind对象myBind= this.BindingContext [ myDataSet , "books" ] ;}protected void saveClick ( object sender , System.EventArgs e ){try{//判断所有字段是否添完,添完则执行,反之弹出提示if ( t_bookid.Text != "" && t_booktitle.Text != "" && t_bookauthor.Text != "" && t_bookprice.Text != "" && t_bookstock.Text != "" ){string strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = sample.mdb " ;OleDbConnection myConn = new OleDbConnection ( strConn ) ;myConn.Open ( ) ;string strInsert = " INSERT INTO books ( bookid , booktitle , bookauthor , bookprice , bookstock ) VALUES ( " ;strInsert += t_bookid.Text + ", '" ;strInsert += t_booktitle.Text + "', '" ;strInsert += t_bookauthor.Text + "', " ;strInsert += t_bookprice.Text + ", " ;strInsert += t_bookstock.Text + ")" ;OleDbCommand inst = new OleDbCommand ( strInsert , myConn ) ;inst.ExecuteNonQuery ( ) ;myConn.Close ( ) ;}else{MessageBox.Show ( "必须填满所有字段值!" , "错误!" ) ;}}catch ( Exception ed ){MessageBox.Show ( "保存数据记录发生 " + ed.ToString ( ) , "错误!" ) ;}}protected void t_newClick ( object sender , System.EventArgs e ){t_bookid.Text = "" ;t_booktitle.Text = "" ;t_bookauthor.Text = "" ;t_bookprice.Text = "" ;t_bookstock.Text = "" ;}//按钮"尾记录"对象事件程序protected void GoLast ( object sender , System.EventArgs e ){myBind.Position = myBind.Count - 1 ;}//按钮"下一条"对象事件程序protected void GoNext ( object sender , System.EventArgs e ){if ( myBind.Position == myBind.Count -1 )MessageBox.Show ( "已经到了最后一条记录!" ) ;elsemyBind.Position += 1 ;}//按钮"上一条"对象事件程序protected void GoPrevious ( object sender , System.EventArgs e ){if ( myBind.Position == 0 )MessageBox.Show ( "已经到了第一条记录!" ) ;elsemyBind.Position -= 1 ;}//按钮"首记录"对象事件程序protected void GoFirst ( object sender , System.EventArgs e ){myBind.Position = 0 ;}}
成功编译上面代码,就可以往Access 2000数据库里面插入记录了。二.用Visual C#往SQL SERVER数据库中插入记录:(1)用Visual C#往Access 2000和SQL SERVER添加记录的主要区别在于使用了不同的数据库引擎。在编写程序之前,首先假设数据库服务器名称为:server1,要访问的数据库名称为:data1,数据表名称为:books。用户名为:sa。其中数据表的数据结构和Access 2000的表的结构相同。下面是程序中打开SQL SERVER的数据引擎程序代码:// 设定数据连接字符串,此字符串的意思是打开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 ( ) ;
(2).用Visual C#往SQL SERVER 数据库中插入记录的源程序代码( add02.cs ):
using System ;using System.Drawing ;using System.ComponentModel ;using System.Windows.Forms ;using System.Data.OleDb ;using System.Data ;//导入程序中使用到的名称空间public class DataAdd : Form {private Button lastrec ;private Button nextrec ;private Button previousrec ;private Button firstrec ;private Container components ;private Label title ;private Button t_new ;private Button save ;private TextBox t_bookstock ;private TextBox t_bookprice ;private TextBox t_bookauthor ;private TextBox t_booktitle ;private TextBox t_bookid ;private Label l_bookstock ;private Label l_bookprice ;private Label l_bookauthor ;private Label l_booktitle ;private Label l_bookid ;private DataSet myDataSet ;private BindingManagerBase myBind ;//定义在程序中要使用的组件public DataAdd ( ) {//连接到一个数据库GetConnected ( ) ;// 对窗体中所需要的内容进行初始化InitializeComponent ( );}//释放程序使用过的所以资源public override void Dispose ( ) {base.Dispose ( ) ;components.Dispose ( ) ;}public static void Main ( ) {Application.Run ( new DataAdd ( ) ) ;}public void GetConnected ( ){try{// 设定数据连接字符串,此字符串的意思是打开Sql server数据库,服务器名称为server1,数据库为data1,用户名为sa。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 books " ;//创建一个 DataSetmyDataSet = new DataSet ( ) ;//用 OleDbDataAdapter 得到一个数据集OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;//把Dataset绑定books数据表myCommand.Fill ( myDataSet , "books" ) ;//关闭此OleDbConnectionmyConn.Close ( ) ;}catch ( Exception e ){MessageBox.Show ( "连接错误! " + e.ToString ( ) , "错误" ) ;}}private void InitializeComponent ( ){components = new System.ComponentModel.Container ( ) ;nextrec = new Button ( ) ;lastrec = new Button ( ) ;previousrec = new Button ( ) ;firstrec = new Button ( ) ;t_bookprice = new TextBox ( ) ;l_booktitle = new Label ( ) ;l_bookprice = new Label ( ) ;l_bookauthor = new Label ( ) ;t_bookid = new TextBox ( ) ;save = new Button ( ) ;title = new Label ( ) ;t_bookauthor = new TextBox ( ) ;t_booktitle = new TextBox ( ) ;t_new = new Button ( ) ;l_bookstock = new Label ( ) ;t_bookstock = new TextBox ( ) ;l_bookid = new Label ( ) ;//以下是对数据浏览的四个按钮进行初始化firstrec.Location = new System.Drawing.Point ( 65 , 312 ) ;firstrec.ForeColor = System.Drawing.Color.Black ;firstrec.Size = new System.Drawing.Size ( 40 , 24 ) ;firstrec.Font = new System.Drawing.Font("仿宋", 8f );firstrec.Text = "首记录";firstrec.Click += new System.EventHandler(GoFirst);previousrec.Location = new System.Drawing.Point ( 135 , 312 ) ;previousrec.ForeColor = System.Drawing.Color.Black ;previousrec.Size = new System.Drawing.Size(40, 24) ;previousrec.Font = new System.Drawing.Font ( "仿宋" , 8f ) ;previousrec.Text = "上一条" ;previousrec.Click += new System.EventHandler ( GoPrevious ) ;nextrec.Location = new System.Drawing.Point ( 205 , 312 );nextrec.ForeColor = System.Drawing.Color.Black ;nextrec.Size = new System.Drawing.Size ( 40 , 24 ) ;nextrec.Font = new System.Drawing.Font ( "仿宋" , 8f ) ;nextrec.Text = "下一条" ;nextrec.Click += new System.EventHandler ( GoNext );lastrec.Location = new System.Drawing.Point ( 275 , 312 ) ;lastrec.ForeColor = System.Drawing.Color.Black ;lastrec.Size = new System.Drawing.Size ( 40 , 24 ) ;lastrec.Font = new System.Drawing.Font ( "仿宋" , 8f ) ;lastrec.Text = "尾记录" ;lastrec.Click += new System.EventHandler ( GoLast ) ;//以下是对显示标签进行初始化l_bookid.Location = new System.Drawing.Point ( 24 , 56 ) ;l_bookid.Text = "书本序号:" ;l_bookid.Size = new System.Drawing.Size ( 112, 20 ) ;l_bookid.Font = new System.Drawing.Font ( "仿宋" , 10f ) ;l_bookid.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;l_booktitle.Location = new System.Drawing.Point ( 24 , 108 ) ;l_booktitle.Text = "书 名:";l_booktitle.Size = new System.Drawing.Size ( 112 , 20 ) ;l_booktitle.Font = new System.Drawing.Font ( "仿宋" , 10f ) ;l_booktitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;l_bookprice.Location = new System.Drawing.Point ( 24 , 212 ) ;l_bookprice.Text = "价 格:" ;l_bookprice.Size = new System.Drawing.Size ( 112 , 20 ) ;l_bookprice.Font = new System.Drawing.Font ( "仿宋" , 10f ) ;l_bookprice.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;l_bookstock.Location = new System.Drawing.Point ( 24 , 264 ) ;l_bookstock.Text = "书 架 号:" ;l_bookstock.Size = new System.Drawing.Size ( 112 , 20 ) ;l_bookstock.Font = new System.Drawing.Font ( "仿宋" , 10f ) ;l_bookstock.TabIndex = 16 ;l_bookstock.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;l_bookauthor.Location = new System.Drawing.Point ( 24 , 160 ) ;l_bookauthor.Text = "作 者:" ;l_bookauthor.Size = new System.Drawing.Size ( 112 , 20 ) ;l_bookauthor.Font = new System.Drawing.Font ( "仿宋" , 10f ) ;l_bookauthor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;title.Location = new System.Drawing.Point ( 32 , 16 ) ;title.Text = "利用Vsiual C#来增加数据记录!" ;title.Size = new System.Drawing.Size ( 336 , 24 ) ;title.ForeColor = System.Drawing.Color.Green ;title.Font = new System.Drawing.Font ( "仿宋" , 14f , System.Drawing.FontStyle.Bold ) ;//以下是对为显示数据记录而设定的标签和文本框进行初始化,并把记录绑定在不同的绑定到文本框"Text"属性上t_bookid.Location = new System.Drawing.Point ( 184 , 56 ) ;t_bookid.Size = new System.Drawing.Size ( 80 , 20 ) ;t_bookid.DataBindings.Add ( "Text" , myDataSet , "books.bookid" ) ;t_bookstock.Location = new System.Drawing.Point ( 184 , 264 ) ;t_bookstock.Size = new System.Drawing.Size ( 80 , 20 ) ;t_bookstock.DataBindings.Add ( "Text" , myDataSet , "books.bookstock" ) ;t_booktitle.Location = new System.Drawing.Point ( 184 , 108 ) ;t_booktitle.Size = new System.Drawing.Size ( 176 , 20 ) ;t_booktitle.DataBindings.Add( "Text" , myDataSet , "books.booktitle" ) ;t_bookprice.Location = new System.Drawing.Point ( 184 , 212 ) ;t_bookprice.Size = new System.Drawing.Size ( 80 , 20 ) ;t_bookprice.DataBindings.Add ( "Text" , myDataSet , "books.bookprice" ) ;t_bookauthor.Location = new System.Drawing.Point ( 184 , 160 ) ;t_bookauthor.Size = new System.Drawing.Size ( 128 , 20 ) ;t_bookauthor.DataBindings.Add ( "Text" , myDataSet , "books.bookauthor" ) ;t_new.Location = new System.Drawing.Point ( 62 , 354 ) ;t_new.Size = new System.Drawing.Size ( 96 , 32 ) ;t_new.Text = "新建记录" ;t_new.Click += new System.EventHandler ( t_newClick ) ;save.Location = new System.Drawing.Point ( 222 , 354 ) ;save.Size = new System.Drawing.Size ( 96 , 32 ) ;save.TabIndex = 4 ;save.Text = "保存记录" ;save.Click += new System.EventHandler ( saveClick ) ;this.Text = "利用Vsiual C#来增加数据记录的程序窗口!" ;this.AutoScaleBaseSize = new System.Drawing.Size ( 5 , 13 ) ;this.FormBorderStyle = FormBorderStyle.Fixed3D ;this.ClientSize = new System.Drawing.Size ( 390 , 400 ) ;//在窗体中加入下列组件this.Controls.Add ( lastrec ) ;this.Controls.Add ( nextrec ) ;this.Controls.Add ( previousrec ) ;this.Controls.Add ( firstrec ) ;this.Controls.Add ( title ) ;this.Controls.Add ( t_new ) ;this.Controls.Add ( save ) ;this.Controls.Add ( t_bookstock ) ;this.Controls.Add ( t_bookprice ) ;this.Controls.Add ( t_bookauthor ) ;this.Controls.Add ( t_booktitle ) ;this.Controls.Add ( t_bookid ) ;this.Controls.Add ( l_bookstock ) ;this.Controls.Add ( l_bookprice ) ;this.Controls.Add ( l_bookauthor ) ;this.Controls.Add ( l_booktitle ) ;this.Controls.Add ( l_bookid ) ;//把对象DataSet和"books"数据表绑定到此myBind对象myBind= this.BindingContext [ myDataSet , "books" ] ;}protected void saveClick ( object sender , System.EventArgs e ){try{//判断所有字段是否添完,添完则执行,反之弹出提示if ( t_bookid.Text != "" && t_booktitle.Text != "" && t_bookauthor.Text != "" && t_bookprice.Text != "" && t_bookstock.Text != "" ){// 设定数据连接字符串,此字符串的意思是打开Sql server数据库,服务器名称为server1,数据库为data1,用户名为sa。string strConn = "Provider = SQLOLEDB.1 ; Persist Security Info = False ; User ID = sa ; Initial Catalog = datal ; Data Source = server1 " ;OleDbConnection myConn = new OleDbConnection ( strConn ) ;myConn.Open ( ) ;string strInsert = " INSERT INTO books ( bookid , booktitle , bookauthor , bookprice , bookstock ) VALUES ( " ;strInsert += t_bookid.Text + ", '" ;strInsert += t_booktitle.Text + "', '" ;strInsert += t_bookauthor.Text + "', " ;strInsert += t_bookprice.Text + ", " ;strInsert += t_bookstock.Text + ")" ;OleDbCommand inst = new OleDbCommand ( strInsert , myConn ) ;inst.ExecuteNonQuery ( ) ;myConn.Close ( ) ;}else{MessageBox.Show ( "必须填满所有字段值!" , "错误!" ) ;}}catch ( Exception ed ){MessageBox.Show ( "保存数据记录发生 " + ed.ToString ( ) , "错误!" ) ;}}protected void t_newClick ( object sender , System.EventArgs e ){t_bookid.Text = "" ;t_booktitle.Text = "" ;t_bookauthor.Text = "" ;t_bookprice.Text = "" ;t_bookstock.Text = "" ;}//按钮"尾记录"对象事件程序protected void GoLast ( object sender , System.EventArgs e ){myBind.Position = myBind.Count - 1 ;}//按钮"下一条"对象事件程序protected void GoNext ( object sender , System.EventArgs e ){if ( myBind.Position == myBind.Count -1 )MessageBox.Show ( "已经到了最后一条记录!" ) ;elsemyBind.Position += 1 ;}//按钮"上一条"对象事件程序protected void GoPrevious ( object sender , System.EventArgs e ){if ( myBind.Position == 0 )MessageBox.Show ( "已经到了第一条记录!" ) ;elsemyBind.Position -= 1 ;}//按钮"首记录"对象事件程序protected void GoFirst ( object sender , System.EventArgs e ){myBind.Position = 0 ;}}
三.总结:本文主要是通过二个程序的例子来具体说明用Visual C#如何往远程数据库--SQL SERVER和本地数据库-- Access 2000中插入记录。对于其他类型的数据库也可以比照这二个这二个数据库来处理,一般来说,用Visual C#处理数据库只是在选用数据库引擎上有较大的差别,在程序中的具体设计和处理上,还是很类似的。最后希望此篇文章能对你的数据库编程有所帮助。
转载于:https://www.cnblogs.com/ProgRamMer-cSdn/archive/2008/11/13/1332435.html