学习笔记。
摘自《一都编程》NET开发-在DBHelper中封装ADO.NET对象,并调用执行添加数据功能
https://baijiahao.baidu.com/s?id=1657203035224629927
一、封装DBHelper类库
1、编写C#代码
在.NET应用程序中,对于经常性的数据库操作,一般都会将与数据库相关的操作封装到DBHelper类库中,帮助数据库的操作。
下面在Visual Studio的解决方案中添加一个类库文件:
在图1中选择“类”,然后输入DBHelper.cs类库名称,并在此类库中编写如下C#+ADO.NET封装代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
namespace Yidosoft.Edu
{
public class DBHelper
{
//创建连接对象
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=testdb;Integrated Security=True");
/// <summary>
/// 执行sql语句返回受影响的行数
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public int ExcuteNonquery(string sql)
{
conn.Open();
SqlCommand command = new SqlCommand(sql, conn);
int count = command.ExecuteNonQuery();
conn.Close();
return count;
}
/// <summary>
/// 返回首行首列数据
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public object ExcuteScalar(string sql)
{
conn.Open();
SqlCommand command = new SqlCommand(sql, conn);
object d = command.ExecuteScalar();
conn.Close();
return d;
}
/// <summary>
/// 返回SqlDataReader对象
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public SqlDataReader DataReader(string sql)
{
conn.Open();
SqlCommand command = new SqlCommand(sql, conn);
SqlDataReader sdr = command.ExecuteReader(CommandBehavior.CloseConnection);
return sdr;
}
/// <summary>
/// 返回DataTable对象
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public DataTable DataTable(string sql)
{
//创建适配器对象
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
//创建数据集
DataSet ds = new DataSet();
//填充数据集
adapter.Fill(ds);
//返回datatable
return ds.Tables[0];
}
}
}
上面的这段C#代码是已经封装好的SQL Server数据库帮助类库,可以实现添加、删除、更新和获取数据,可以重复使用,减少代码的编写。
2、调用DBHelper类库
对于封装好的DBHelper类库,就可以在ASP.NET WebForm应用程序中调用来操作SQL Server数据库中了。
如下是在按钮事件代码中调用DBHelper对象中的方法实现添加数据功能:
DBHelper db = new DBHelper();
protected void Button1_Click(object sender, EventArgs e)
{
string sql = "select * from bw_student";
object o = db.ExcuteScalar(sql);
Response.Write(o);
this.GridView1.DataSource = db.DataTable(sql);
this.GridView1.DataBind();
string addSQL = "insert into student values('小子',26,1,getdate())";
Response.Write(db.ExcuteNonquery(addSQL));
}
使用这段代码,我们只是调用了ExcuteNonquery()方法来实现添加数据的功能,减少了代码量。
二、添加数据功能
在上面封装好了DBHelper类库,就可以在ASP.NET WebForms应用程序中实现对SQL Server数据库的添加功能。
对于添加操作,只需要将页面上控件的值使用C#代码接收,然后将接收的值得使用SQL语句添加到数据库即可。
图2的Course表中,给Name字段添加数据,设计的页面效果如下图所示:
上图中,在文本框中输入内容后,点击“添加”按钮,就可实现将内容添加到SQL Server数据库中。
Add.aspx页面的代码如下:
<body>
<form id="form1" runat="server">
<div>
课程名称:<asp:TextBox ID="txtName" runat="server"></asp:TextBox><p />
<asp:Button ID="btnAdd" runat="server" Text="添加" OnClick="btnAdd_Click" />
</div>
</form>
</body>
运行此Html代码,效果如图4(略):
在图4中的文本框中输入“SqlServer”文本内容。点击一下“添加”按钮,如下图所示:
从上图的结果上看,给出提示“添加成功”,这个提示是从后台C#代码中返回的,表示我们添加的数据成功存储到SQL Server数据库中了。
下面查看一下添加数据的C#代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Yidosoft.Edu
{
public partial class Add : System.Web.UI.Page
{
DBHelper db = new DBHelper();
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 添加
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAdd_Click(object sender, EventArgs e)
{
string name = txtName.Text;
if(name!="")
{
string sql = string.Format("insert into BW_Course(Name,StudentId) values('{0}',{1})", name, 20);
int result = db.ExcuteNonquery(sql);
if(result>=1)
{
Response.Write("添加成功");
}
else
{
Response.Write("添加失败");
}
}
}
}
}
在此代码中,调用了DBHelper类库中的ExcuteNonquery()方法执行SQL语句完成添加操作。
使用上面的这些样例代码,就可以在.NET应用程序中直接拿来使用。