【编者按】网学网ASP.net频道为大家收集整理了“Visual C#来修改和删除数据库记录“提供大家参考,希望对大家有所帮助!
一.程序设计和运行的环境设置:字段名称 | 字段类型 | 代表意思 |
Bookid | 数字 | 序号 |
booktitle | 文本 | 书籍名称 |
bookauthor | 文本 | 书籍作者 |
bookprice | 数字 | 价格 |
bookstock | 数字 | 书架号 |
//连接到一个数据库 string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = sample.mdb " ; OleDbConnection myConn = new OleDbConnection ( strCon ) ; myConn.Open ( ) ; string strDele = "DELETE FROM books WHERE bookid= " + t_bookid.Text ; OleDbCommand myCommand = new OleDbCommand ( strDele , myConn ) ; //从数据库中删除指定记录 myCommand.ExecuteNonQuery ( ) ; //从DataSet中删除指定记录信息 myDataSet.Tables [ "books" ] . Rows [ myBind.Position ] . Delete ( ) ; myDataSet.Tables [ "books" ] . AcceptChanges ( ) ; myConn.Close ( ) ; (2).用Visual C#来修改数据表中的记录: 在用Visual C#修改记录和删除记录,在程序设计中大致差不多,具体的实现方式也是通过SQL语句调用来实现的。下面就是在程序中修改记录的具体语句: //连接到一个数据库 string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = sample.mdb " ; OleDbConnection myConn = new OleDbConnection ( strCon ) ; myConn.Open ( ) ; //从数据库中修改指定记录 string strUpdt = " UPDATE books SET booktitle = ''" + t_booktitle.Text + "'' , bookauthor = ''" + t_bookauthor.Text + "'' , bookprice = " + t_bookprice.Text + " , bookstock = " + t_bookstock.Text + " WHERE bookid = " + t_bookid.Text ; OleDbCommand myCommand = new OleDbCommand ( strUpdt , myConn ) ; myCommand.ExecuteNonQuery ( ) ; myConn.Close ( ) ; |
using System ; using System.Drawing ; using System.ComponentModel ; using System.Windows.Forms ; using System.Data.OleDb ; using System.Data ; public class DataEdit : Form { private System.ComponentModel.Container components ; private Button delete ; private Button update ; private Button lastrec ; private Button nextrec ; private Button previousrec ; private Button firstrec ; 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 Label label1 ; private System.Data.DataSet myDataSet ; private BindingManagerBase myBind ; private bool isBound = false ; //定义此变量,是判断组件是否已经绑定数据表中的字段 public DataEdit ( ) { // 对窗体中所需要的内容进行初始化 InitializeComponent ( ) ; //连接到一个数据库 GetConnected ( ) ; } //清除程序中用到的所有资源 public override void Dispose ( ) { base.Dispose ( ) ; components.Dispose ( ) ; } 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 " ; //创建一个 DataSet对象 myDataSet = new DataSet ( ) ; myConn.Open ( ) ; OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ; myCommand.Fill ( myDataSet , "books" ) ; myConn.Close ( ) ; //判断数据字段是否绑定到 TextBoxes if ( !isBound ) { //以下是为显示数据记录而把数据表的某个字段绑定在不同的绑定到文本框"Text"属性上 t_bookid.DataBindings.Add ( "Text" , myDataSet , "books.bookid" ) ; t_booktitle.DataBindings.Add ( "Text" , myDataSet , "books.booktitle" ) ; t_bookauthor.DataBindings.Add ( "Text" , myDataSet , "books.bookauthor" ) ; t_bookprice.DataBindings.Add ( "Text" , myDataSet , "books.bookprice" ) ; t_bookstock.DataBindings.Add ( "Text" , myDataSet , "books.bookstock" ) ; //设定 BindingManagerBase //把对象DataSet和"books"数据表绑定到此myBind对象 myBind = this.BindingContext [ myDataSet , "books" ] ; isBound = true ; } } catch ( Exception e ) { MessageBox.Show ( "连接数据库发生错误为:" + e.ToString ( ) , "错误!" ) ; } } public static void Main ( ) { Application.Run ( new DataEdit ( ) ) ; } private void InitializeComponent ( ) { this.components = new System.ComponentModel.Container ( ) ; this.t_bookid = new TextBox ( ) ; this.previousrec = new Button ( ) ; this.l_bookauthor = new Label ( ) ; this.delete = new Button ( ) ; this.t_booktitle = new TextBox ( ) ; this.t_bookauthor = new TextBox ( ) ; this.t_bookprice = new TextBox ( ) ; this.l_bookprice = new Label ( ) ; this.t_bookstock = new TextBox ( ) ; this.l_bookstock = new Label ( ) ; this.l_booktitle = new Label ( ) ; this.update = new Button ( ) ; this.nextrec = new Button ( ) ; this.lastrec = new Button ( ) ; this.firstrec = new Button ( ) ; this.label1 = new Label ( ) ; this.l_bookid = new Label ( ) ; t_bookid.Location = new System.Drawing.Point ( 184 , 56 ) ; t_bookid.Size = new System.Drawing.Size ( 80 , 20 ) ; t_booktitle.Location = new System.Drawing.Point ( 184 , 108 ) ; t_booktitle.Size = new System.Drawing.Size ( 176 , 20 ) ; t_bookauthor.Location = new System.Drawing.Point ( 184 , 160 ) ; t_bookauthor.Size = new System.Drawing.Size ( 128 , 20 ) ; t_bookprice.Location = new System.Drawing.Point ( 184 , 212 ) ; t_bookprice.Size = new System.Drawing.Size ( 80 , 20 ) ; t_bookstock.Location = new System.Drawing.Point ( 184 , 264 ) ; t_bookstock.Size = new System.Drawing.Size ( 80 , 20 ) ; //以下是设定在程序中使用到的Label属性 l_bookid.Location = new System.Drawing.Point ( 24 , 56 ) ; l_bookid.Text = "序 号:" ; l_bookid.Size = new System.Drawing.Size ( 142 , 20 ) ; l_bookid.Font = new System.Drawing.Font ( "宋体" , 12f ) ; 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 ( 142 , 20 ) ; l_booktitle.Font = new System.Drawing.Font ( "宋体" , 12f ) ; l_booktitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ; l_bookauthor.Location = new System.Drawing.Point ( 24 , 160 ) ; l_bookauthor.Text = "作 者:"; l_bookauthor.Size = new System.Drawing.Size ( 142 , 20 ) ; l_bookauthor.Font = new System.Drawing.Font ( "宋体" , 12f ) ; l_bookauthor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ; l_bookprice.Location = new System.Drawing.Point ( 24 , 212 ) ; l_bookprice.Text = "价 格:" ; l_bookprice.Size = new System.Drawing.Size ( 142 , 20 ) ; l_bookprice.Font = new System.Drawing.Font ( "宋体" , 12f ) ; 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 ( 142 , 20 ) ; l_bookstock.Font = new System.Drawing.Font ( "宋体" , 12f ) ; l_bookstock.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ; //以下设定程序中用到的功能按钮的属性及对应的事件 delete.Location = new System.Drawing.Point ( 104 , 352 ) ; delete.ForeColor = System.Drawing.Color.Black ; delete.Size = new System.Drawing.Size ( 80 , 24 ) ; delete.Font = new System.Drawing.Font ( "宋体" , 9f ) ; delete.Text = "删除记录" ; delete.Click += new System.EventHandler ( GoDelete ) ; update.Location = new System.Drawing.Point ( 204 , 352 ) ; update.ForeColor = System.Drawing.Color.Black ; update.Size = new System.Drawing.Size ( 80 , 24 ) ; update.Font = new System.Drawing.Font ( "宋体" , 9f ) ; update.Text = "修改记录" ; update.Click += new System.EventHandler ( GoUpdate ) ; firstrec.Location = new System.Drawing.Point ( 64 , 312 ) ; firstrec.ForeColor = System.Drawing.Color.Black ; firstrec.Size = new System.Drawing.Size ( 40 , 24 ) ; firstrec.Font = new System.Drawing.Font ( "宋体" , 9f ) ; firstrec.Text = "首记录" ; firstrec.Click += new System.EventHandler ( GoFirst ) ; previousrec.Location = new System.Drawing.Point ( 136 , 312 ) ; previousrec.ForeColor = System.Drawing.Color.Black ; previousrec.Size = new System.Drawing.Size ( 40 , 24 ) ; previousrec.Font = new System.Drawing.Font ( "宋体" , 9f ) ; previousrec.Text = "上一条" ; previousrec.Click += new System.EventHandler ( GoPrevious ) ; nextrec.Location = new System.Drawing.Point ( 208 , 312 ) ; nextrec.ForeColor = System.Drawing.Color.Black ; nextrec.Size = new System.Drawing.Size ( 40 , 24 ) ; nextrec.Font = new System.Drawing.Font ( "宋体" , 9f ) ; nextrec.Text = "下一条" ; nextrec.Click += new System.EventHandler ( GoNext ) ; lastrec.Location = new System.Drawing.Point ( 280 , 312 ) ; lastrec.ForeColor = System.Drawing.Color.Black ; lastrec.Size = new System.Drawing.Size ( 40 , 24 ) ; lastrec.Font = new System.Drawing.Font ( "宋体" , 9f ) ; lastrec.Text = "尾记录" ; lastrec.Click += new System.EventHandler ( GoLast ) ; label1.Location = new System.Drawing.Point ( 60 , 20 ) ; label1.Text = "用Visual C#来修改和删除数据库中的记录" ; label1.Size = new System.Drawing.Size ( 296 , 24 ) ; label1.ForeColor = System.Drawing.SystemColors.Desktop ; label1.Font = new System.Drawing.Font ( "宋体" , 14f ) ; //设定程序的主窗体的属性 this.Text = "用Visual C#来修改和删除数据库中的记录!" ; this.AutoScaleBaseSize = new System.Drawing.Size ( 5 , 13 ) ; this.FormBorderStyle = FormBorderStyle.FixedSingle ; this.ClientSize = new System.Drawing.Size ( 394 , 425 ) ; //在主窗体中加入组件 this.Controls.Add ( delete ) ; this.Controls.Add ( update ) ; this.Controls.Add ( lastrec ) ; this.Controls.Add ( nextrec ) ; this.Controls.Add ( previousrec ) ; this.Controls.Add ( firstrec ) ; 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 ) ; this.Controls.Add ( label1 ) ; } //"删除记录"对应的事件 protected void GoDelete ( object sender, System.EventArgs e ) { try{ //连接到一个数据库 string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = sample.mdb " ; OleDbConnection myConn = new OleDbConnection ( strCon ) ; myConn.Open ( ) ; string strDele = "DELETE FROM books WHERE bookid= " + t_bookid.Text ; OleDbCommand myCommand = new OleDbCommand ( strDele , myConn ) ; //从数据库中删除指定记录 myCommand.ExecuteNonQuery ( ) ; //从DataSet中删除指定记录 myDataSet.Tables [ "books" ] . Rows [ myBind.Position ] . Delete ( ) ; myDataSet.Tables [ "books" ] . AcceptChanges ( ) ; myConn.Close ( ) ; } catch ( Exception ed ) { MessageBox.Show ( "删除记录错误信息: " + ed.ToString ( ) , "错误!" ) ; } } //"修改记录"按钮对应的事件 protected void GoUpdate ( object sender , System.EventArgs e ) { int i = myBind.Position ; try{ //连接到一个数据库 string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = sample.mdb " ; OleDbConnection myConn = new OleDbConnection ( strCon ) ; myConn.Open ( ) ; //从数据库中修改指定记录 string strUpdt = " UPDATE books SET booktitle = ''" + t_booktitle.Text + "'' , bookauthor = ''" + t_bookauthor.Text + "'' , bookprice = " + t_bookprice.Text + " , bookstock = " + t_bookstock.Text + " WHERE bookid = " + t_bookid.Text ; OleDbCommand myCommand = new OleDbCommand ( strUpdt , myConn ) ; myCommand.ExecuteNonQuery ( ) ; myConn.Close ( ) ; } catch ( Exception ed ) { MessageBox.Show ( "修改指定记录错误: " + ed.ToString ( ) , "错误!" ) ; } myBind.Position = i ; } //"尾记录"按钮对应的事件 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 ( "已经到尾记录!" ) ; else myBind.Position += 1 ; } //"上一条"按钮对应的事件 protected void GoPrevious ( object 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 ; } }四.编译源程序代码,生成执行文件: 得到了Data.cs源程序代码以后,经过下面编译命令编译成功后,即可得到执行文件data.exe:
五.总结: 本文主要介绍了如何用Visual C#来删除和修改记录。以及在处理这些操作的时候,应该注意的一些重要问题及处理的方法。如果你的机器已经满足本文要求的运行环境,那么在生成的执行文件目录中建立一个sample.mdb数据库,在数据库中创建一个books数据表,数据表的结构可按照本文上面提供的结构来建立,在这一切都完毕后,就可以运行程序,享受Visual C#给我们带来的数据操作的快感了。 |