首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 图形图象-> Director教程
C#数据库編程2-.NET教程,数据库应用
作者:网友供稿 点击:185
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
四.插入数据记录: </p><p>  对数据库进行插入记录操作和删除记录操作基本的思路是一致的,就是通过ado.net首先插入数据记录到数据库,然后对"dataset"对象进行必要的修改。下列代码就是以access 2000数据库为模型修改当前记录的代码: </p><p>protected void update_record ( object sender , system.eventargs e )
{

int i = mybind.position ;

try{

file://连接到一个数据库

string strcon = " provider = microsoft.jet.oledb.4.0 ; data source = db.mdb " ;

oledbconnection myconn = new oledbconnection ( strcon ) ;

myconn.open ( ) ;

mydataset.tables [ "person" ] . rows [ mybind.position ] . beginedit ( ) ;

file://从数据库中修改指定记录

string strupdt = " update person set xm = "

+ t_xm.text + " , xb = "

+ t_xb.text + " , nl = "

+ t_nl.text + " , zip = "

+ t_books.text + " where id = " + t_id.text ;

oledbcommand mycommand = new oledbcommand ( strupdt , myconn ) ;

mycommand.executenonquery ( ) ;

mydataset.tables [ "person" ] . rows [ mybind.position ] . endedit ( ) ;

mydataset.tables [ "person" ] . acceptchanges ( ) ;

myconn.close ( ) ;

}

catch ( exception ed )

{

messagebox.show ( "修改指定记录错误: " + ed.tostring ( ) , "错误!" ) ;

}

mybind.position = i ;

} </p><p>  由于对sql server 2000数据记录修改操作和access 2000数据记录修改操作的差异只在于不同的数据链接,具体的代码可以参考"删除数据记录"中的代码,在这里就不提供了。



五.插入数据记录:



  和前面二种操作在思路是一致的,就是通过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 ( ) , "错误!" ) ;

}

}



  同样对sql server 2000数据库进行插入记录操作和access 2000数据库插入记录操作的差异也只在于不同的数据链接,具体的代码可以参考"删除数据记录"中的代码,在这里就不提供了。

  六.visual c#数据库编程的完成源代码和程序运行的主界面:



  掌握了上面要点,编写一个完整的数据库编程的程序就显得非常容易了,下面是visual c#进行数据库编程的完整代码(data01.cs),此代码是以access 2000数据库为模型设计的,具体如下:



using system ;

using system.drawing ;

using system.componentmodel ;

using system.windows.forms ;

using system.data.oledb ;

using system.data ;



public class data : form

{

private system.componentmodel.container components = null ;

private button lastrec ;

private button nextrec ;

private button previousrec ;

private button firstrec ;

private textbox t_books ;

private textbox t_nl ;

private combobox t_xb ;

private textbox t_xm ;

private textbox t_id ;

private label l_books ;

private label l_nl ;

private label l_xb ;

private label l_xm ;

private label l_id ;

private label label1 ;

private dataset mydataset ;

private button button1 ;

private button button2 ;

private button button3 ;

private button button4 ;

private bindingmanagerbase mybind ;



public data ( )

{

file://连接到一个数据库

getconnected ( ) ;

// 对窗体中所需要的内容进行初始化

initializecomponent ( ) ;

}

file://清除在程序中使用过的资源

protected override void dispose( bool disposing )

{

if( disposing )

{

if ( components != null )

{

components.dispose ( ) ;

}

}

base.dispose( disposing ) ;

}

public static void main ( )

{

application.run ( new data ( ) ) ;

}

public void getconnected ( )

{

try

{

file://创建一个 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 ( ) ;

}

catch ( exception e )

{

messagebox.show ( "连接错误! " + e.tostring ( ) , "错误" ) ;

}

}

private void initializecomponent ( )

{



file://添加控件,略



this.name = "data" ;

this.text = "visual c#的数据库编程!" ;

this.resumelayout(false) ;

mybind = this.bindingcontext [ mydataset , "person" ] ;

}

protected void new_record ( object sender , system.eventargs e )

{

t_id.text = ( mybind.count + 1 ).tostring ( ) ;

t_xm.text = "" ;

t_xb.text = "" ;

t_nl.text = "" ;

t_books.text = "" ;

}

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 ( ) , "错误!" ) ;

}

}

protected void update_record ( object sender , system.eventargs e )

{

int i = mybind.position ;

try{

file://连接到一个数据库

string strcon = " provider = microsoft.jet.oledb.4.0 ; data source = db.mdb " ;

oledbconnection myconn = new oledbconnection ( strcon ) ;

myconn.open ( ) ;

mydataset.tables [ "person" ] . rows [ mybind.position ] . beginedit ( ) ;

file://从数据库中修改指定记录

string strupdt = " update person set xm = "

+ t_xm.text + " , xb = "

+ t_xb.text + " , nl = "

+ t_nl.text + " , zip = "

+ t_books.text + " where id = " + t_id.text ;

oledbcommand mycommand = new oledbcommand ( strupdt , myconn ) ;

mycommand.executenonquery ( ) ;

mydataset.tables [ "person" ] . rows [ mybind.position ] . endedit ( ) ;

mydataset.tables [ "person" ] . acceptchanges ( ) ;

myconn.close ( ) ;

}

catch ( exception ed )

{

messagebox.show ( "修改指定记录错误: " + ed.tostring ( ) , "错误!" ) ;

}

mybind.position = i ;

}



protected void delete_record ( object sender , system.eventargs e )

{

dialogresult r = messagebox.show ( "是否删除当前记录!" , "删除当前记录!" , messageboxbuttons.yesno , messageboxicon.question ) ;

int ss = ( int ) r ;

  if ( ss == 6 ) // 按动"确定"按钮

{

try{

file://连接到一个数据库

string strcon = " provider = microsoft.jet.oledb.4.0 ; data source = db.mdb " ;

oledbconnection myconn = new oledbconnection ( strcon ) ;

myconn.open ( ) ;

string strdele = "delete from person where id= " + t_id.text ;

oledbcommand mycommand = new oledbcommand ( strdele , myconn ) ;

file://从数据库中删除指定记录

mycommand.executenonquery ( ) ;

file://从dataset中删除指定记录

mydataset.tables [ "person" ] . rows [ mybind.position ] . delete ( ) ;

mydataset.tables [ "person" ] . acceptchanges ( ) ;

myconn.close ( ) ;

}

catch ( exception ed )

{

messagebox.show ( "删除记录错误信息: " + ed.tostring ( ) , "错误!" ) ;

}

}

}

file://按钮"尾记录"对象事件程序

protected void golast ( object sender , system.eventargs e )

{

mybind.position = mybind.count - 1 ;

}



file://按钮"下一条"对象事件程序

protected void gonext ( object sender , system.eventargs e )

{

if ( mybind.position == mybind.count -1 )

messagebox.show ( "已经到了最后一条记录!", "信息提示!" , messageboxbuttons.ok , messageboxicon.information ) ;

else

mybind.position += 1 ;

}

file://按钮"上一条"对象事件程序

protected void goprevious ( object sender , system.eventargs e )

{

if ( mybind.position == 0 )

messagebox.show ( "已经到了第一条记录!" , "信息提示!" , messageboxbuttons.ok , messageboxicon.information ) ;

else

mybind.position -= 1 ;

}

file://按钮"首记录"对象事件程序

protected void gofirst ( object sender , system.eventargs e )

{

mybind.position = 0 ;

}

}





  对于以sql server 2000数据库为模型的程序代码,只要把data01.cs中的数据链接,即:

string myconn1 = " provider = microsoft.jet.oledb.4.0 ; data source = db.mdb" ;



  改换成:

string strcon = "provider = sqloledb.1 ; persist security info = false ; user id = sa ; initial catalog = data1 ; data source = server1 " ;



  注释:此数据链接代表的意思是:打开sql server数据库,服务器名称为server1,数据库为data1

就可以得到visual c#针对sql server 2000数据库为模板编程的完成源程序代码了。所以本文就不再提供了。



  七.总结:



  数据库编程始终是程序编程内容中的一个重点和难点。而以上介绍的这些操作又是数据库编程中最为基本,也是最为重要的内容。那些复杂的编程无非是以上这些处理的若干个叠加。







文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·用Session对Web页面进行保护-PHP教程,PHP应用
·C#数据库編程2-.NET教程,数据库应用
·Java变量类型间的相互转换-JSP教程,Jsp/Servlet
·HTML中的数据绑定(Data Binding)-.NET教程,数据库应用
·开关电源发展轨迹
·大功率开关电源系统通信模块设计
·在C#中使用ADO.Net部件来访问Access数据库-.NET教程,数据库应用
·新型数字交叉连接系统sdxc的功能及其在通信网络中应用研究
·WinCE 5.0边做边学(1)-.NET教程,评论及其它
·ups供电系统的可靠性和”可利用率”
最新文章
·seo策略之大型网站_seo网站优化
·dreamweaver经典插件下载_dreamweaver教程
·使用asp.net ajax框架扩展html map控件_asp.net技巧
·个人网站发展和赚钱的模式—选择篇_网赚技巧
·王通:赚钱的三种基本方式_网赚技巧
·爱卡汽车网总裁张京秋:将会并购互补媒体_站长访谈
·站长访谈:mosens—一个高一站长的建站经历_站长访谈
·初学建站应知:网站文件命名规范_站长心得
·你的网站是否会被搜索引擎封杀?_站长心得
·google优化网站管理员指导方针_站长心得
相关主题
  • c#数据库操作的3种典型用法_c#应用
  • C#数据库事务原理及实践(上)-.NET教程,C#语言
  • C#数据库连接字符大全-.NET教程,C#语言
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭