分类
用Visual C#往数据库中添加记录(下)‖
| (1)用Visual C#往Ac 据库引擎。在编写程序之前 为:data1,数据表名称为 的表的结构相同。下面是程 | cess 2000和SQL SERVER添加记 ,首先假设数据库服务器名称为 :books。用户名为:sa。其中 序中打开SQL SERVER的数据引擎 | 录的主要区别在于使用了不同的数 :server1,要访问的数据库名称 数据表的数据结构和Access 2000 程序代码: |
| // 设定数据连接字符 server1,数据库为data1 | 串,此字符串的意思是打开Sql | server数据库,服务器名称为 |
| string strCon = "Pro ID = sa ; Initial Catalo | vider = SQLOLEDB.1 ; Persist g = data1 ; Data Source = se | Security Info = False ; User rver1 " ; |
| OleDbConnection myConn = new Ole | DbConnection ( 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{ |
| // 设定数据连接字符 server1,数据库为data1, | 串,此字符串的意思是打开Sql 用户名为sa。 | server数据库,服务器名称为 |
| string strCon = "Provider = SQLO ID = sa ; Initial Catalog = data1 ; | LEDB.1 ; Persist Security Info = False ; User Data Source = server1 " ; |
| OleDbConnection myCo | nn = new OleDbConnection ( s | trCon ) ; |
| myConn.Open ( ) ; |
| string strCom = " SE | LECT * FROM books " ; |
| //创建一个 DataSet |
| myDataSet = new DataSet ( ) ; |
| ?/用 OleDbDataAdapter 得到一个数据集 |
| OleDbDataAdapter myC | ommand = new OleDbDataAdapte | r ( strCom , myConn ) ; |
| //把Dataset绑定books数据表 |
| myCommand.Fill ( myDataSet , "bo | oks" ) ; |
| //关闭此OleDbConnection |
| myConn.Close ( ) ; |
| } |
| catch ( Exception e ) |
| { |
| MessageBox.Show ( "连接错误! " + | e.ToString ( ) , "错误" ) ; |
| } |
| } |
| private void InitializeComponent ( ) |
| { |
| components = new Sys | tem.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 ( 6 | 5 , 312 ) ; |
| firstrec.ForeColor = System.Draw | ing.Color.Black ; |
| firstrec.Size = new | System.Drawing.Size ( 40 , 2 | 4 ) ; |
| firstrec.Font = new | System.Drawing.Font("仿宋", | 8f ); |
| firstrec.Text = "首记录"; |
| firstrec.Click += new System.Eve | ntHandler(GoFirst); |
| previousrec.Location | = new System.Drawing.Point | ( 135 , 312 ) ; |
| previousrec.ForeColor = System.D | rawing.Color.Black ; |
| previousrec.Size = n | ew System.Drawing.Size(40, 2 | 4) ; |
| previousrec.Font = n | ew System.Drawing.Font ( "仿 | 宋" , 8f ) ; |
| previousrec.Text = "上一条" ; |
| previousrec.Click += new System. | EventHandler ( GoPrevious ) ; |
| nextrec.Location = n | ew System.Drawing.Point ( 20 | 5 , 312 ); |
| nextrec.ForeColor = System.Drawi | ng.Color.Black ; |
| nextrec.Size = new System.Drawin | g.Size ( 40 , 24 ) ; |
| nextrec.Font = new S | ystem.Drawing.Font ( "仿宋" | , 8f ) ; |
| nextrec.Text = "下一条" ; |
| nextrec.Click += new | System.EventHandler ( GoNex | t ); |
| lastrec.Location = new System.Dr | awing.Point ( 275 , 312 ) ; |
| lastrec.ForeColor = System.Drawi | ng.Color.Black ; |
| lastrec.Size = new S | ystem.Drawing.Size ( 40 , 24 | ) ; |
| lastrec.Font = new S | ystem.Drawing.Font ( "仿宋" | , 8f ) ; |
| lastrec.Text = "尾记录" ; |
| lastrec.Click += new | System.EventHandler ( GoLas | t ) ; |
| //以下是对显示标签进行初始化 |
| l_bookid.Location = | new System.Drawing.Point ( 2 | 4 , 56 ) ; |
| l_bookid.Text = "书本序号:" ; |
| l_bookid.Size = new | System.Drawing.Size ( 112, 2 | 0 ) ; |
| l_bookid.Font = new System.Drawi | ng.Font ( "仿宋" , 10f ) ; |
| l_bookid.TextAlign = | System.Drawing.ContentAlign | ment.MiddleCenter ; |
| l_booktitle.Location | = new System.Drawing.Point | ( 24 , 108 ) ; |
| l_booktitle.Text = "书 名:"; |
| l_booktitle.Size = new System.Dr | awing.Size ( 112 , 20 ) ; |
| l_booktitle.Font = n | ew System.Drawing.Font ( "仿 | 宋" , 10f ) ; |
| l_booktitle.TextAlign = System.D | rawing.ContentAlignment.MiddleCenter ; |
| l_bookprice.Location | = new System.Drawing.Point | ( 24 , 212 ) ; |
| l_bookprice.Text = "价 格:" ; |
| l_bookprice.Size = n | ew System.Drawing.Size ( 112 | , 20 ) ; |
| l_bookprice.Font = new System.Dr | awing.Font ( "仿宋" , 10f ) ; |
| l_bookprice.TextAlig | n = System.Drawing.ContentAl | ignment.MiddleCenter ; |
| l_bookstock.Location = new Syste | m.Drawing.Point ( 24 , 264 ) ; |
| l_bookstock.Text = "书 架 号:" ; |
| l_bookstock.Size = new System.Dr | awing.Size ( 112 , 20 ) ; |
| l_bookstock.Font = n | ew System.Drawing.Font ( "仿 | 宋" , 10f ) ; |
| l_bookstock.TabIndex = 16 ; |
| l_bookstock.TextAlign = System.D | rawing.ContentAlignment.MiddleCenter ; |
| l_bookauthor.Location = new Syst | em.Drawing.Point ( 24 , 160 ) ; |
| l_bookauthor.Text = "作 者:" ; |
| l_bookauthor.Size = new System.D | rawing.Size ( 112 , 20 ) ; |
| l_bookauthor.Font = new System.D | rawing.Font ( "仿宋" , 10f ) ; |
| l_bookauthor.TextAlign = System. | Drawing.ContentAlignment.MiddleCenter ; |
| title.Location = new | System.Drawing.Point ( 32 , | 16 ) ; |
| title.Text = "利用Vsiual C#来增加数据记录!" ; |
| title.Size = new Sys | tem.Drawing.Size ( 336 , 24 | ) ; |
| title.ForeColor = System.Drawing | .Color.Green ; |
| title.Font = new System.Drawing. stem.Drawing.FontStyle.Bold ) ; | Font ( "仿宋" , 14f , Sy |
| //以下是对为显示数据记录而设定的 定到文本框"Text"属性上 | 标签和文本框进行初始化,并把记录绑定在不同的绑 |
| t_bookid.Location = new System.D | rawing.Point ( 184 , 56 ) ; |
| t_bookid.Size = new | System.Drawing.Size ( 80 , 2 | 0 ) ; |
| t_bookid.DataBindings.Add ( "Tex | t" , myDataSet , "books.bookid" ) ; |
| t_bookstock.Location = new Syste | m.Drawing.Point ( 184 , 264 ) ; |
| t_bookstock.Size = n | ew 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.Dr | awing.Size ( 176 , 20 ) ; |
| t_booktitle.DataBindings.Add( "T | ext" , myDataSet , "books.booktitle" ) ; |
| t_bookprice.Location | = new System.Drawing.Point | ( 184 , 212 ) ; |
| t_bookprice.Size = new System.Dr | awing.Size ( 80 , 20 ) ; |
| t_bookprice.DataBindings.Add ( " | Text" , myDataSet , "books.bookprice" ) ; |
| t_bookauthor.Locatio | n = new System.Drawing.Point | ( 184 , 160 ) ; |
| t_bookauthor.Size = new System.D | rawing.Size ( 128 , 20 ) ; |
| t_bookauthor.DataBin | dings.Add ( "Text" , myDataS | et , "books.bookauthor" ) ; |
| t_new.Location = new System.Draw | ing.Point ( 62 , 354 ) ; |
| t_new.Size = new System.Drawing. | Size ( 96 , 32 ) ; |
| t_new.Text = "新建记录" ; |
| t_new.Click += new S | ystem.EventHandler ( t_newCl | ick ) ; |
| save.Location = new | System.Drawing.Point ( 222 , | 354 ) ; |
| save.Size = new Syst | em.Drawing.Size ( 96 , 32 ) | ; |
| save.TabIndex = 4 ; |
| save.Text = "保存记录" ; |
| save.Click += new System.EventHa | ndler ( saveClick ) ; |
| this.Text = "利用Vsiual C#来增加 | 数据记录的程序窗口!" ; |
| this.AutoScaleBaseSi | ze = new System.Drawing.Size | ( 5 , 13 ) ; |
| this.FormBorderStyle | = FormBorderStyle.Fixed3D ; | |
| this.ClientSize = ne | w 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.Binding | Context [ myDataSet , "books | " ] ; |
| } |
| protected void saveClick ( objec | t sender , System.EventArgs e ) |
| { |
| try |
| { |
| //判断所有字段是否添完,添完则执行,反之弹出提示 |
| if ( t_bookid.Text ! && t_bookprice.Text != " | = "" && t_booktitle.Text != " && t_bookstock.Text != "" | "" && t_bookauthor.Text != "" ) |
| { |
| // 设定数据连接字符 server1,数据库为data1, | 串,此字符串的意思是打开Sql 用户名为sa。 | server数据库,服务器名称为 |
| string strConn = "Provider = SQL User ID = sa ; Initial Catalog = dat | OLEDB.1 ; Persist Security Info = False ; al ; Data Source = server1 " ; |
| OleDbConnection myCo | nn = new OleDbConnection ( s | trConn ) ; |
| myConn.Open ( ) ; |
| string strInsert = " bookprice , bookstock ) | INSERT INTO books ( bookid VALUES ( " ; | , booktitle , bookauthor , |
| strInsert += t_bookid.Text + ", '" ; |
| strInsert += t_bookt | itle.Text + "', '" ; |
| strInsert += t_bookauthor.Text + | "', " ; |
| strInsert += t_bookprice.Text + ", " ; |
| strInsert += t_bookstock.Text + ")" ; |
| OleDbCommand inst = new OleDbCom | mand ( strInsert , myConn ) ; |
| inst.ExecuteNonQuery ( ) ; |
| myConn.Close ( ) ; |
| } |
| else |
| { |
| MessageBox.Show ( "必须填满所有 | 字段值!" , "错误!" ) ; |
| } |
| } |
| catch ( Exception ed ) |
| { |
| MessageBox.Show ( "保存数据记录 | 发生 " + ed.ToString ( ) , "错误!" ) ; |
| } |
| } |
| protected void t_newClick ( obje | ct sender , System.EventArgs e ) |
| { |
| t_bookid.Text = "" ; |
| t_booktitle.Text = "" ; |
| t_bookauthor.Text = "" ; |
| t_bookprice.Text = "" ; |
| t_bookstock.Text = "" ; |
| } |
| //按钮"尾记录"对象事件程序 |
| protected void GoLast ( object s | ender , System.EventArgs e ) |
| { |
| myBind.Position = myBind.Count - 1 ; |
| } |
| //按钮"下一条"对象录绦? |
| protected void GoNex | t ( object sender , System.E | ventArgs e ) |
| { |
| if ( myBind.Position == myBind.C | ount -1 ) |
| MessageBox.Show ( "已经到了最后一条记录!" ) ; |
| else |
| myBind.Position += 1 ; |
| } |
| //按钮"上一条"对象事件程序 |
| protected void GoPrevious ( obje | ct sender , System.EventArgs e ) |
| { |
| if ( myBind.Position == 0 ) |
| MessageBox.Show ( "已经到了第一条记录!" ) ; |
| else |
| myBind.Position -= 1 ; |
| } |
| //按钮"首记录"对象事件程序 |
| protected void GoFirst ( object | sender , System.EventArgs e ) |
| { |
| myBind.Position = 0 ; |
| } |
| } |
| 三.总结: |
| 本文主要是通过二个程序的例子来具 和本地数据库-- Access 2000中插入记录 据库来处理,一般来说,用Visual C#处 程序中的具体设计和处理上,还是很类似 | 体说明用Visual C#如何往远程数据库--SQL SERVER 。对于其他类型的数据库也可以比照这二个这二个数 理数据库只是在选用数据库引擎上有较大的差别,在 的。 |