C#与数据库访问技术总结(九)之实例
实例
更新记录
在本例子中,建立一个供用户输入学生学号和姓名的文本框和几个对应不同操作类型的更新信息按钮,当用户输入信息以后单击相应的按钮则执行相应的操作。在此实例中还将接触到服务器信息验证的相关知识。
(1)新建名为UpdateTest的Windows Application应用程序,在默认的Forml.cs中添加2个Label控件,2个TextBox控件,3个Button控件,按表4.7所示设置这7个控件的属性。
表4.7控件属性
|
控件类型 ID属性 Text属性 |
|
标签 lblUserID 学号: 标签 lblUserName 姓名: 文本框 txtUserlD 文本框 txtUserName 按钮 btnExecute1 拼接字符串 按钮 btnExecute2 使用参数 按钮 btnExecute3 使用存储过程 |
(2)调整控件的位置(按照个人喜好了)
(3)双击“拼接字符串”按钮,注册按钮btnExecute的按钮单击事件btnExecute1_Click,
然后再切换到Form1.cs页面的“设计”视图,依次双击“使用参数”和“使用存储过程”按钮来注册对应的按钮单击事件btnExecute2_Click和btnExecute3_Click。
(4)在Form1.cs文件中首先引入命名空间System.Data.SqlClient,然后添加一个名 CheckInfo的方法,返回值为bool类型,代码如下:
bool CheckInfo()
{
//判断学号是否输入
if (this.txtUserID.Text.Trim() == "")
{
Alert("学号不完整");
return false;
}
else if (this.txtUserName.Text.Trim() == "") //判断姓名是否输入
{
Alert("姓名不完整");
return false;
}
//信息检查通过
return true;
}
//其中,Alert是自定义的另外一个方法,用来弹出一个对话框,定义如下:
void Alert(string message)
{
MessageBox.Show(null, message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//在btnExecute1_Click中编写如下代码:
private void btnExecute1_Click(object sender, EventArgs e)
{
//信息检查
if(this.CheckInfo())
{
//取值
string userId=this.txtUserID.Text.Trim();
string userName=this.txtUserName.Text.Trim();
//新建连接对象
SqlConnection conn=new SqlConnection();
conn.ConnectionString="Data Source=(local);Initial Catalog=Student;Integrated Security=SSPI";
//拼接命令字符串
string updateQuery="update StudentInfo set sName='"+userName+"'"+"where ID='"+userId+"’";
//新建命令对象
SqlCommand cmd=new SqlCommand(updateQuery,conn);
conn.Open();
//保存执行结果
int RecordsAffected=cmd.ExecuteNonQuery();
conn.Close();
//提示结果
Alert("更新数据数为"+RecordsAffected);
}
}
//在btnExecute2_Click中编写如下代码:
private void btnExecute2_Click(object sender, EventArgs e)
{
//信息检查
if(this.CheckInfo())
{
//取值
string userId=this.txtUserID.Text.Trim();
string userName=this.txtUserName.Text.Trim();
//新建连接对象
SqlConnection conn=new SqlConnection();
conn.ConnectionString="Data Source=(local);Initial Catalog=Student;Integrated Security=SSPI";
//拼接命令字符串
string updateQuery="update StudentInfo set sName=@userName where ID=@userId";
//新建命令对象
SqlCommand cmd=new SqlCommand(updateQuery,conn);
//添加参数
cmd.Parameters.Add(new SqlParameter("@userName", userName));
cmd.Parameters.Add(new SqlParameter("@userId", userId));
conn.Open();
//保存执行结果
int RecordsAffected = cmd.ExecuteNonQuery();
conn.Close();
/*
try
{
conn.Open();
//保存执行结果
int RecordsAffected = cmd.ExecuteNonQuery();
}
catch (Exception err)
{
MessageBox.Show(err.Message, "修改记录失败");
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}*/
//提示结果
Alert("更新数据数为"+RecordsAffected);
}
}
//在btnExecute3_Click中编写如下代码:
private void btnExecute3_Click(object sender, EventArgs e)
{
//信息检查
if (this.CheckInfo())
{
//取值
string userId = this.txtUserID.Text.Trim();
string userName = this.txtUserName.Text.Trim();
//新建连接对象
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=(local);Initial Catalog=Student;Integrated Security=SSPI";
//新建命令对象
SqlCommand cmd = new SqlCommand("UpdateStudentInfo", conn);
//指定命令类型为存储过程
cmd.CommandType = CommandType.StoredProcedure;
//添加参数
cmd.Parameters.Add(new SqlParameter("@userName", userName));
cmd.Parameters.Add(new SqlParameter("@userId", userId));
conn.Open();
//保存执行结果
int RecordsAffected = cmd.ExecuteNonQuery();
conn.Close();
//提示结果
Alert("更新数据数为" + RecordsAffected);
}
}
(9)在学号和姓名中分别输入信息以后,单击任意按钮即可测试更新结果。
例如:
分别输入学号"2007102001"和姓名“某某”后单击任意按钮.
代码讲解
在引入了System.Data.SqlClient命名空间以后,使用了SQL Server .NET数据提供程序对数据进行更新。
更新数据前使用了CheckInfo方法对数据进行检查,查看用户是否在姓名和学号两个文本框中输入了有效的信息,如果两者的输入信息都有效,则该方法返回true,否则返回false,
方法实现如下:
//判断学号是否输入
if (this.txtUserID.Text.Trim() == "")
{
Alert("学号不完整");
return false;
}
else if (this.txtUserName.Text.Trim() == "") //判断姓名是否输入
{
Alert("姓名不完整");
return false;
}
//信息检查通过
return true;
当用户输入的信息不正确时,Checklnfo将调用Alert方法显示提示信息对话框,
Alert方法实际上是固定MessageBox.Show方法的一些参数,利用其来弹出对话框,Alert方法实现非常简单,仅仅需要下面一句代码:
MessageBox.Show(null,message,"信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
其中,message是Alert方法接受的参数。
在3个按钮单击事件中,程序代码分别实现对应的数据更新操作,这些操作前面都进行了详细的讲解,这里不再赘述。
C#与数据库访问技术总结(九)之实例的更多相关文章
- C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看
数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键 ...
- C#与数据库访问技术总结(十八)
ADO.NET 代码综合示例 前面已经介绍过OLE DB.NET和SQL Server.NET数据提供者可以用来连接不同的数据源. 以下代码不仅综合演示了使用ADO.NET的这两种数据提供者访问数据库 ...
- c# 窗体开发4 数据库访问技术
ADO.NET的名称起源于ADO(ACTIVEX DATA OBJECTS) USING SYSTEM; USING SYSTEM.COLLECTIONS.GENERIC; USING SYSTEM. ...
- 数据库访问技术 odbc dao rdo uda jet oledb
一.UDA(UniversalDataAccess) 这是微软提供的通用数据访问策略.包括ADO.OLEDB和ODBC.它不光提供了数据库的访 问能力,对于其它的数据存储技术也同样支持,如目录服务.E ...
- C#与数据库访问技术总结(七)综合示例
综合示例 说明:前面介绍了那么多,光说不练假把式,还是做个实例吧. 表:首先你要准备一张表,这个自己准备吧.我们以学生表为例. 1.ExecuteScalar方法 ExecuteScalar方法执行返 ...
- C#与数据库访问技术总结(十七)
使用DataSet对象访问数据库 当对DataSet对象进行操作时,DataSet对象会产生副本,所以对DataSet里的数据进行编辑操作不会直接对数据库产生影响,而是将DataRow的状态设置为ad ...
- C#与数据库访问技术总结(十六)之 DataSet对象
DataSet对象 DataSet对象可以用来存储从数据库查询到的数据结果,由于它在获得数据或更新数据后立即与数据库断开,所以程序员能用此高效地访问和操作数据库. 并且,由于DataSet对象具有离线 ...
- C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例
DataAdapter对象代码示例 下面的代码将说明如何利用DataAdapter对象填充DataSet对象. private static string strConnect=" data ...
- C#与数据库访问技术总结(十四)之DataAdapter对象
DataAdapter对象 DataAdapter对象主要用来承接Connection和DataSet对象. DataSet对象只关心访问操作数据,而不关心自身包含的数据信息来自哪个Connectio ...
随机推荐
- C语言提供了几个标准库函数 itoa() atoi()
C语言提供了几个标准库函数C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串.以下是用itoa()函数将整数转换为字符串的一个例子: # include <s ...
- java去中文
java 去中文 package a.b; public class TrimCNTool { public static boolean checkCNChar(char oneChar) { if ...
- java.net.MalformedURLException: Illegal character in URL
在进行接口测试时,意外发现返回结果报java.net.MalformedURLException: Illegal character in URL,意思是“在URL中的非法字符”,我的参数是经过ba ...
- iOS改变NavigationBar的返回键和标题颜色、大小
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [UIPubic initHeadViewBackImgWithBt ...
- 《深入理解Spark:核心思想与源码分析》正式出版上市
自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的<深入理解Spark:核心思想与源码分析>一书现在已经正式出版上市,目前亚马逊.京东.当当.天猫等网站均有销售 ...
- Jungle Roads
Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid ...
- Unity5 如何做资源管理和增量更新
工具 Unity 中的资源来源有三个途径:一个是Unity自动打包资源,一个是Resources,一个是AssetBundle. Unity自动打包资源是指在Unity场景中直接使用到的资源会随着场景 ...
- Frament 方法
public final boolean isAdded() 如果该Fragment对象被添加到了它的Activity中,那么它返回true,否则返回false. public final boole ...
- ZooKeeper在centos6.4的集群搭建
首先给一个小tips,在搭建zookeeper之前,需要配置好java环境,请参看我的另一篇文章<Jdk1.8在CentOS7中的安装与配置>,还需要免密码登录,请参看我的另一篇文章< ...
- alt属性
也被称为alt text, 是当图片无法加载时显示的替代文本.alt属性对于盲人或视觉损伤的用户理解一幅图片中所描绘的内容非常重要,搜索引擎也会搜索alt属性. 简而言之,每一张图片都应该有一个alt ...