网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ADO.NET详细研究(3)

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 14/02/27

以下是网学网为您推荐的ASP.net-ADO.NET详细研究(3),希望本篇文章对您学习有所帮助。

这次我们用实例演示DataReader的基本应用,当然同时包含Command以及Connection的基本操作。通过这个实例的学习我们能处理一般的数据库系统了。

WinForm的个人通讯录(vs.net2003 + sql server2000)

1. 建立数据库(前面的文章已经讨论)

2. 启动Vs.net建立contract工程并设计如下界面:




其中重要控件属性列表如下:

控件类型
Text
Name
其他

ListView

listView
显示模式为details,FullRowSelect为ture

Button
确定
btnOK
默认enable为false

Button
重填
btnRE
默认enable为false

Button
添加联系人信息
btnAdd


Button
修改选中联系人信息
btnEdit


Button
删除选中联系人信息
btnDel


TextBox

txtName
默认enable为false

TextBox

txtPhone
默认enable为false

TextBox

txtAddress
默认enable为false,Multiline为true



3. 编写代码:

首先我们在窗体加载事件里面添加liestView显示数据事件

private void Form1_Load(object sender, System.EventArgs e)

{

getInfo();

}

在getInfo方法里面我们必须把数据库里面的信息读取出来同时显示到listView里面。这时一个可行的办法是使用DataReader直接读取数据然后显示。但是我这里不想这样做,我编写一个专门的类contractDB来处理数据,这个类里面有自己的一些方法,实现对数据库的操作。

// class contractDB,封装应用程序所有对数据库的操作事件

using System;

using System.Data;

using System.Data.SqlClient;



namespace contract

{

/// <summary>

/// contractDB 的摘要说明。

/// </summary>

public class contractDB

{

string connStr = "Data Source = joycode;Initial Catalog = contract;user id = sa;password = 87345587";

//string sql;

//SqlCommand cmd;



public contractDB()

{

//

// TODO: 在此处添加构造函数逻辑

//

}



/// <summary>

/// 获得所有联系人信息

/// </summary>

/// <returns>所有联系人信息</returns>

public SqlDataReader getReader()

{

string sql = "select Fid,Fname,Fphone,Faddress from friend";

SqlConnection conn = new SqlConnection(connStr);

conn.Open();

SqlCommand cmd = new SqlCommand(sql,conn);

SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

return reader;

}

}

}

我的目的很明显,我将调用getReader方法得到我须要的DataReader,因此在Form1里面的getInfo方法代码如下:

private void getInfo()

{

contractDB cdb = new contractDB();

try

{

SqlDataReader reader = cdb.getReader();

this.listView.Items.Clear();

while(reader.Read())

{

string[] subItems = new string[]

{

reader.GetInt32(0).ToString(),

reader.GetString(1),

reader.GetString(2),

reader.GetString(3)

};

this.listView.Items.Add(new ListViewItem(subItems));

}

reader.Close();

}

catch(Exception ex)

{

MessageBox.Show(ex.ToString());

}

}

上面的代码很简单,不做解释,但是注意由于我们在数据访问类没有考虑异常,那么我们在这里必须处理可能出现的异常。

类似的我们在数据访问类中添加另外的方法:添加联系人,删除联系人,修改信息。整个类文件如下:

using System;

using System.Data;

using System.Data.SqlClient;



namespace contract

{

/// <summary>

/// contractDB 的摘要说明。

/// </summary>

public class contractDB

{

string connStr = "Data Source = bineon;Initial Catalog = contract;user id = sa;password = 87345587";

//string sql;

//SqlCommand cmd;



public contractDB()

{

//

// TODO: 在此处添加构造函数逻辑

//

}



/// <summary>

/// 获得所有联系人信息

/// </summary>

/// <returns>所有联系人信息</returns>

public SqlDataReader getReader()

{

string sql = "select Fid,Fname,Fphone,Faddress from friend";

SqlConnection conn = new SqlConnection(connStr);

conn.Open();

SqlCommand cmd = new SqlCommand(sql,conn);

SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

return reader;

}



/// <summary>

/// 添加新联系人

/// </summary>

/// <param name="_name">姓名</param>

/// <param name="_phone">电话</param>

/// <param name="_address">地址</param>

public void addInfo(string _name,string _phone,string _address)

{

//可以使用Command Parameter来构造sql语句以获得更好的效率和更高的安全性

string sql = "insert into friend (Fname,Fphone,Faddress) values (''";

sql += _name + "'',''" + _phone + "'',''" + _address + "'')";

SqlConnection conn = new SqlConnection(connStr);

SqlCommand cmd = new SqlCommand(sql,conn);

conn.Open();

cmd.ExecuteNonQuery();

conn.Close();

}



/// <summary>

/// 修改联系人信息

/// </summary>

/// <param name="_id">需要修改的联系人的id</param>

/// <param name="_name"></param>

/// <param name="_phone"></param>

/// <param name="_address"></param>

public void changeInfo(int _id,string _name,string _phone,string _
  • 上一篇资讯: ado.net详细研究
  • 下一篇资讯: ado.net详细研究(2)
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号