一、前言
因为这学期选修的 .net 课程就要上机考试了,所以总结下.net 操作 SqlServer 数据的方法。(因为本人方向是 Java,所以对.net 的了解不多,但以下所写代码均是经过测试成功的),下面话不多说了,来一起看看详细的介绍吧。
二、.net 连接数据库
在web.config文件中配置数据库连接,代码写在<configuration></configuration>内
<appSettings> <add key="connstring" value="user id=sa; password=sa123456; database=dataset; server=(local)" /> </appSettings>
其中 sa 为 SqlServer 数据库账号,sa123456 为数据库账号密码,dataset 位数据库名。
通过上面的代码大家不难看出这是通过SqlServer数据库的账号连接的。那么如果需要通过Windows身份认证连接呢?
<appSettings> <add key="connstring" value="Data Source=.;Initial Catalog=dataset;Integrated Security=True"/> </appSettings>
其中,dataset 为数据库名。
配置好了之后,再在cs后台文件中使用 Connection 对象连接
String constr = ConfigurationManager.AppSettings["connstring"].ToString(); SqlConnection myconn = new SqlConnection(constr);
很明显,第一个句获取我们在 web.config 中配置的数据库的信息的字符串,然后 new 一个 SqlConnection 对象。
这个时候也许你会想,既然是获取配置文件中的字符串,那么可不可以直接在cs后台文件中写而不需要再配置文件中配置后再获取呢?答案是肯定的。
String constr = "Data Source=.;Initial Catalog=dataset;Integrated Security=True"; SqlConnection myconn = new SqlConnection(constr);
仔细对比下先前写的配置文件,就知道这两种方式的相同点了。
那么现在简单说下 Connection 对象是个什么。在 ADO.NET 中 Connection 对象的主要用途是打开和关闭数据库的连接,通过这个对象,可以对数据库进行访问和操作。
String constr = "Data Source=.;Initial Catalog=dataset;Integrated Security=True"; SqlConnection myconn = new SqlConnection(constr); myconn.Open(); //相关数据库操作 myconn.Close();
Open 就是打开数据库,Close 就是关闭数据库。
三、.net 操作数据库
那么通过 Connection 对象打开数据库后怎么对数据库操作呢?在 Dao.Net 中提供了Command 对象,主要就是用来对数据库进行增、删、改、查的操作。
下面我们直接看个查找操作的例子:
String constr = "Data Source=.;Initial Catalog=dataset;Integrated Security=True"; SqlConnection myconn = new SqlConnection(constr); myconn.Open(); string sql = "select * from custom "; SqlCommand cmd = new SqlCommand(sql, sqlConnection); SqlDataReader dataReader = cmd.ExecuteReader(); Show.Text = "<tr><td>学号</td><td>姓名</td><td>学院</td><td>年龄</td><td>昵称</td></tr>"; while (dataReader.Read()) { Show.Text = Show.Text + "<tr><td>" + dataReader[0].ToString() + "</td><td>" + dataReader[1].ToString() + "</td><td>" + dataReader[2].ToString() + "</td><td>" + dataReader[3].ToString() + "</td><td>" + dataReader[4].ToString() + "</td></tr>"; } sqlConnection.Close();
通过上面这段代码,不难发现,在开启Connection对象后,首先我们需要写一段查询的sql语句:
string sql = "select * from custom ";
然后,new 一个SqlCommand对象,参数是 sql 语句 和 Connection 对象 。
SqlCommand cmd = new SqlCommand(sql, sqlConnection);
再然后,我们通过 SqlCommand 对象的 ExecuteReader 方法,执行查询语句,并返回一个DataReader 对象。
SqlDataReader dataReader = cmd.ExecuteReader();
再再然后,就是将 DataReader 对象中的数据(也就是我们查询的数据)读取出来了
while (dataReader.Read()) { Show.Text = Show.Text + "<tr><td>" + dataReader[0].ToString() + "</td><td>" + dataReader[1].ToString() + "</td><td>" + dataReader[2].ToString() + "</td><td>" + dataReader[3].ToString() + "</td><td>" + dataReader[4].ToString() + "</td></tr>"; }
最后,当然是关闭我们的 Connection 对象了。
sqlConnection.Close();
查询操作是通过 Command 对象的 ExecuteReader 方法来操作,那么增删改呢?
增删改的话就得用到 Command 对象的 ExecuteNonQuery 方法了。这个方法返回的是受影响的行数,也就是说如果操作失败,返回的是0。
还是看个增加数据的例子吧:
myconn.Open(); String sql = "insert into custom values('" + uid.Text + "','" + uname.Text + "','" + udepart.Text + "'," + uage.Text + ",'" + uename.Text + "','" + upassword.Text + "')"; SqlCommand cmd = new SqlCommand(sql, myconn); if (cmd.ExecuteNonQuery() > 0) { this.Response.Write("<script language='javascript'>alert('增加成功!')</script>"); } else { this.Response.Write("<script language='javascript'>alert('添加失败!')</script>"); } myconn.Close();
通过上面代码,不难发现,其实套路和我们写的查询差不多,就是sql语句不同和调用的Command对象不同而已。
但是,仔细看会发现这段代码是使用了 sql 语句拼接的。这种方式写起来比较乱(又是双引号又是单引号的),还有可能被 sql 注入。这个时候就会想,能不能有占位符呢?答案是肯定的。
myconn.Open(); SqlCommand cmd = myconn.CreateCommand(); cmd.CommandText = "insert into custom values(@uid,@uname,@udepart,@uage,@uename,@upassword)"; cmd.Parameters.AddWithValue("@uid", uid.Text); cmd.Parameters.AddWithValue("@uname", uname.Text); cmd.Parameters.AddWithValue("@udepart", udepart.Text); cmd.Parameters.AddWithValue("@uage", uage.Text); cmd.Parameters.AddWithValue("@uename", uename.Text); cmd.Parameters.AddWithValue("@upassword", upassword.Text); if (cmd.ExecuteNonQuery() > 0) { this.Response.Write("<script language='javascript'>alert('增加成功!')</script>"); } else { this.Response.Write("<script language='javascript'>alert('添加失败!')</script>"); } myconn.Close(); ShowAll();
这段代码与之前代码的不同之处在于:
1.使用 Connection 对象的 CreateCommand 方法创建了一个SqlCommand 对象。
SqlCommand cmd = myconn.CreateCommand();
2.使用了Command 对象的 CommandText 属性写 sql 语句文本,当然也可以是存储过程的名称。
cmd.CommandText = "insert into custom values(@uid,@uname,@udepart,@uage,@uename,@upassword)";
3.使用了Command 对象的 Parameters 属性 输入参数。
cmd.Parameters.AddWithValue("@uid", uid.Text); cmd.Parameters.AddWithValue("@uname", uname.Text); cmd.Parameters.AddWithValue("@udepart", udepart.Text); cmd.Parameters.AddWithValue("@uage", uage.Text); cmd.Parameters.AddWithValue("@uename", uename.Text); cmd.Parameters.AddWithValue("@upassword", upassword.Text);
嗯这样一改看起来就很舒服了^_^
修改、删除和增加的套路是差不多的。这里就不贴代码了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。
本文向大家介绍Python实现连接MySql数据库及增删改查操作详解,包括了Python实现连接MySql数据库及增删改查操作详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现连接MySql数据库及增删改查操作。分享给大家供大家参考,具体如下: 在本文中介绍 Python3 使用PyMySQL连接数据库,并实现简单的增删改查。(注意是python3) 1、安装PyMySQ
本文向大家介绍java jdbc连接mysql数据库实现增删改查操作,包括了java jdbc连接mysql数据库实现增删改查操作的使用技巧和注意事项,需要的朋友参考一下 jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比
本文向大家介绍Node.js操作mysql数据库增删改查,包括了Node.js操作mysql数据库增删改查的使用技巧和注意事项,需要的朋友参考一下 关于node.js操作mysql数据库的相关介绍请阅读全文吧。下文介绍的非常详细,具体内容如下所示: 安装mysql模块 数据库准备 mysql server所在的机器IP地址是192.168.0.108,登录账户就用root@123456 在mys
本文向大家介绍PHP连接数据库实现注册页面的增删改查操作,包括了PHP连接数据库实现注册页面的增删改查操作的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了PHP连接数据库实现注册页面的增删改查操作的方法,供大家参考,具体内容如下 1.连接数据库 2.注册页面(html页面) 3.将注册数据显示在数据库 4.返回后台界面 5.修改数据 6.删除数据 以上就是本文的全部内容,希望对大家的
本文向大家介绍Android中XML的基本操作(增、删、改、查),包括了Android中XML的基本操作(增、删、改、查)的使用技巧和注意事项,需要的朋友参考一下 Android中XML的一些操作 解析类: 上面的这个类中用了单例!分别定义了XML的创建,获取XML的节点值,更新后执行的操作! MainActivity: 最后记得添加读写SDcard的权限! 感谢阅读,希望能帮助到大家,谢谢大家对
本文向大家介绍MongoDB入门教程之细说MongoDB数据库的增删查改操作,包括了MongoDB入门教程之细说MongoDB数据库的增删查改操作的使用技巧和注意事项,需要的朋友参考一下 看过上一篇,相信大家都会知道如何开启mongodb了,这篇就细说下其中的增删查改,首先当我们用上一篇同样的方式打开mongodb,突然 傻眼了,擦,竟然开启不了,仔细观察“划线区域“的信息,发现db文