本站业务范围:1、PC端软件开发、网站开发 2、移动端APP、网站、微信接口、微商城开发 3、视频教程、毕业设计辅导
 当前位置:文章中心 >> Asp.net专题(WCF/WPF/WF)
立即购买视频教程 .net操作SqlServer数据库增删改查
夜鹰教程网 来源:www.yyjcw.com 日期:2018/1/2 18:29:47
分享到:
.net操作SqlServer数据库增删改查

这篇文章不能解决你的问题?我们还有相关视频教程哦!

QQ:1416759661 新手QQ群:7835003  加Q远程协助!

在线解答|Demo制作|远程调试| 点击查看相关的视频教程

技术咨询: 购买教程  技术咨询:购买教程  大胆的加QQ咨询。

一、写在前面

因为这学期选修的 .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);

复制代码

嗯这样一改看起来就很舒服了^_^


 


修改、删除和增加的套路是差不多的。这里就不贴代码了。


复制链接 网友评论 收藏本文 关闭此页
上一条: .NET使用反射读取用户自定义的枚举…  下一条: 如何将WCF服务部署到远程服务器
购买夜鹰教程网视频教程
  推荐教程/优惠活动

  热门服务/教程目录

  夜鹰教程网  新手必看,详细又全面。
  夜鹰教程网  购买教程  夜鹰教程网  在线支付-方便
  夜鹰教程网  担保交易-快捷安全   夜鹰教程网  闪电发货
  夜鹰教程网  电话和QQ随时可以联系我们。
  夜鹰教程网 不会的功能都可以找我们,按工作量收费。

客服电话:153 9760 0032

购买教程QQ:1416759661  购买教程
  热点推荐
表单提交中get和post方式的区别有…
解决ASP中UTF-8与GB2312编码转换乱…
asp数组中REDIM的用法(动态数组)…
生成html的新方法ASP
ASP字符串函数大全
ASP生成Word文件的代码
ASP中Randomize随机函数的使用
十天学会ASP教程之第一天:安装调…
自定义的asp日期格式化函数
防范ASP网站漏洞的八大法则之一
十天学会ASP教程之第二天:表单传…
asp中关于从utf8页面到gb2312页面…
ASP教程:实现长文章分页功能
IIS6架设网站的问题总结
五分钟打开 allow_url_fopen 的最…
  尊贵服务
夜鹰教程网 承接业务:软件开发 网站开发 网页设计 .Net+C#+VS2008+MSsql+Jquery+ExtJs全套高清完整版视频教程
  最近更新
C#里面的ref和out区别
C#调用API让声卡发出声音
.NET使用反射读取用户自定义的枚举…
.net操作SqlServer数据库增删改查…
如何将WCF服务部署到远程服务器
对WebApi 实现服务端信息的监控
用WCF生成Restful风格的接口返回 …
只有一个地址如何调用WCF服务
WCF简介
搭一个简单的wcf服务
WCF配置说明
WCF传输的数据量过大问题的解决方…
asp.net大文件分块上传文件秒传断…
http断点续传总结
http状态码206与断点续传下载原理…
  工具下载  需要远程协助? 购买教程

sql2008视频教程 c#视频教程

VIP服务:如果您的某个功能不会做,可以加我们QQ,给你做DEMO!

JQUERY  Asp.net教程

MVC视频教程  vs2012
.NET+sql开发
手机:15397600032 C#视频教程下载
vs2012 vs2008 vs2010 sql2008 sql2005
Asp.Net  

教程咨询QQ:1416759661


这篇文章不能解决你的问题?我们还有相关视频教程哦!

QQ:1416759661 新手QQ群:7835003  加Q远程协助!

在线解答|Demo制作|远程调试| 点击查看相关的视频教程

技术咨询: 购买教程  技术咨询:购买教程  大胆的加QQ咨询。

关于我们 | 广告投放 | 购买教程 | 网站建设 | 技术辅导 | 常见问题 | 联系我们 | 友情链接 | 购买教程

Nighthawk Tutorials Network 快捷购买教程

夜鹰教程网 版权所有 www.yyjcw.com All rights reserved 备案号:蜀ICP备08011740号3

 

出售asp.net系列视频教程 高清原创版 每天晚上20:30--23:00在线 按照编号从简单到高级 http://www.yyjcw.com/list.html