asp.net怎么把一些常用的方法封装成类,然后在其他页面调用呢?麻烦举个简单的例子,非常感谢!!
3个回答
展开全部
DBhelper知道不知道?
这个是非常简单的DBhelper
不需要三层架构..
using System;
using System.Data;
using System.Data.SqlClient;
namespace Hospital
{
class DBHelper
{
public static string connString = "Data Source=.;Initial Catalog=PatientsDB;User Id=sa";
/// <summary>
/// 执行查询,并返回数据库受影响的行数
/// </summary>
/// <param name="sql">要执行的 SQL 语句</param>
/// <returns>返回数据库受影响的行数</returns>
public static int ExecuteNonQuery(string sql)
{
SqlConnection connection = null;
try
{
connection = new SqlConnection(connString);
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
return command.ExecuteNonQuery();
}
catch
{
return -1;
}
finally
{
if (connection != null)
connection.Close();
}
}
public static object ExecuteScalar(string sql)
{
SqlConnection connection = null;
try
{
connection = new SqlConnection(connString);
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
return command.ExecuteScalar();
}
catch
{
return null;
}
finally
{
if (connection != null)
connection.Close();
}
}
public static SqlDataAdapter GetDataAdapter(string sql)
{
SqlConnection connection = null;
try
{
connection = new SqlConnection(connString);
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
return adapter;
}
catch
{
return null;
}
finally
{ }
}
public static SqlDataReader GetDataReader(string sql)
{
SqlConnection connection = null;
try
{
connection = new SqlConnection(connString);
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
return command.ExecuteReader();
}
catch
{
return null;
}
finally
{ }
}
}
}
......................................................
........................下面就是调用.................
......................................................
private void RegisterForm_Load(object sender, EventArgs e)
{
// 初始化数据集
this.dataSet = new DataSet();
// 初始化数据适配器(WHERE 1 = 2 的含义是仅产生表和表结构,不填充记录行)
this.adapter = DBHelper.GetDataAdapter("SELECT * FROM PatientsInfo WHERE 1 = 2");
// 填充表(因为 WHERE 1 = 2,所以仅有表结构无记录)
this.adapter.Fill(this.dataSet, "PatientsInfo");
// 防止 DataGridView 根据数据集自动生成列
this.dgbRegister.AutoGenerateColumns = false;
// DataGridView 绑定数据集
this.dgbRegister.DataSource = this.dataSet.Tables["PatientsInfo"];
}
很简单吧...
这个是非常简单的DBhelper
不需要三层架构..
using System;
using System.Data;
using System.Data.SqlClient;
namespace Hospital
{
class DBHelper
{
public static string connString = "Data Source=.;Initial Catalog=PatientsDB;User Id=sa";
/// <summary>
/// 执行查询,并返回数据库受影响的行数
/// </summary>
/// <param name="sql">要执行的 SQL 语句</param>
/// <returns>返回数据库受影响的行数</returns>
public static int ExecuteNonQuery(string sql)
{
SqlConnection connection = null;
try
{
connection = new SqlConnection(connString);
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
return command.ExecuteNonQuery();
}
catch
{
return -1;
}
finally
{
if (connection != null)
connection.Close();
}
}
public static object ExecuteScalar(string sql)
{
SqlConnection connection = null;
try
{
connection = new SqlConnection(connString);
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
return command.ExecuteScalar();
}
catch
{
return null;
}
finally
{
if (connection != null)
connection.Close();
}
}
public static SqlDataAdapter GetDataAdapter(string sql)
{
SqlConnection connection = null;
try
{
connection = new SqlConnection(connString);
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
return adapter;
}
catch
{
return null;
}
finally
{ }
}
public static SqlDataReader GetDataReader(string sql)
{
SqlConnection connection = null;
try
{
connection = new SqlConnection(connString);
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
return command.ExecuteReader();
}
catch
{
return null;
}
finally
{ }
}
}
}
......................................................
........................下面就是调用.................
......................................................
private void RegisterForm_Load(object sender, EventArgs e)
{
// 初始化数据集
this.dataSet = new DataSet();
// 初始化数据适配器(WHERE 1 = 2 的含义是仅产生表和表结构,不填充记录行)
this.adapter = DBHelper.GetDataAdapter("SELECT * FROM PatientsInfo WHERE 1 = 2");
// 填充表(因为 WHERE 1 = 2,所以仅有表结构无记录)
this.adapter.Fill(this.dataSet, "PatientsInfo");
// 防止 DataGridView 根据数据集自动生成列
this.dgbRegister.AutoGenerateColumns = false;
// DataGridView 绑定数据集
this.dgbRegister.DataSource = this.dataSet.Tables["PatientsInfo"];
}
很简单吧...
展开全部
要在相同程序下调用页面
重点就是要在相同的名称空间下
如果定义一个设置DataGrid样式的类
GridData.cs文件
using System;
............;
using System.Web.UI.HtmlControls;
namespace Test
{
public class GridData
{
public GridData()
{
}
public static void SetDataGridStyle(DataGrid dg)
{
dg.BorderWidth=Unit.Pixel(1);
dg.CellPadding=5;
dg.CellSpacing=0;
dg.HeaderStyle.Font.Bold = true;
dg.HeaderStyle.Wrap = false;
dg.ItemStyle.Wrap = false;
dg.FooterStyle.Wrap = false;
}
}
}
然后你再建立相对应页面的后代CS代码 设置namespace
namespace Test{
public class 页面名称: System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
Test.GridData.SetDataGridStyle()
//或直接GridData.SetDataGridStyle应为该页面的类也是在TEST下
}
}
}
在任何代码处就能直接调用Test.GridData.SetDataGridStyle()方法了
好像是要建立WEB应用程序才会自动建立名称空间,项目名称或文件夹名称就默认为名称空间,WEB网站好像不会自动.
重点就是要在相同的名称空间下
如果定义一个设置DataGrid样式的类
GridData.cs文件
using System;
............;
using System.Web.UI.HtmlControls;
namespace Test
{
public class GridData
{
public GridData()
{
}
public static void SetDataGridStyle(DataGrid dg)
{
dg.BorderWidth=Unit.Pixel(1);
dg.CellPadding=5;
dg.CellSpacing=0;
dg.HeaderStyle.Font.Bold = true;
dg.HeaderStyle.Wrap = false;
dg.ItemStyle.Wrap = false;
dg.FooterStyle.Wrap = false;
}
}
}
然后你再建立相对应页面的后代CS代码 设置namespace
namespace Test{
public class 页面名称: System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
Test.GridData.SetDataGridStyle()
//或直接GridData.SetDataGridStyle应为该页面的类也是在TEST下
}
}
}
在任何代码处就能直接调用Test.GridData.SetDataGridStyle()方法了
好像是要建立WEB应用程序才会自动建立名称空间,项目名称或文件夹名称就默认为名称空间,WEB网站好像不会自动.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
下载一个简单的3层架构。然后把数据层和逻辑层编译成dll后。拷贝出来,自己再单独建立一个web层,bin目录引用这2个dll,你可以随意的调用出来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询