asp.net c#调用类访问数据库

作者&投稿:员善 (若有异议请与网页底部的电邮联系)
asp.net中怎么样把访问数据库代码封装起来随时调用~






上面是在web.config中写的
在调用时用写个类,在类中加一个这样的方法就行了
public SqlConnection connection()
{
string strConn = ConfigurationManager.ConnectionStrings["news_manageConnectionString"].ToString();
SqlConnection sqlcon = new SqlConnection(strConn);
return sqlcon;
}
然后你在用这个连接时,你只要调用这方法就行了。
这样做的好处是,ASP.NET是编译好再运行的,就和我们开发的软件一样,最后生成的是.dll文件,这是我们只能看到web.config文件,这样一来如果你的数据库服器名称换了,只要打开WEB.CONFIG改就行,不用再从改你的程序原码了。

给你我的源码吧
SqlConnection conn = new SqlConnection(GetConnectionString.conn());
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure; //指定执行存储过程操作
cmd.CommandText = "fangSTDEquGroup"; //存储过程名称
SqlDataAdapter da = new SqlDataAdapter(cmd); //定义一个数据适配器
DataSet DataSet2 = new DataSet(); //定义一个数据集
da.Fill(DataSet2); //填充数据集
DataTable dt = DataSet2.Tables[0]; //取数据集中的表进行操作

TreeView2.Nodes.Clear();
TreeNode cc = new TreeNode();
cc.Text = "设备";
cc.Value = "设备";
TreeView2.Nodes.Add(cc);

foreach (DataRow dr in dt.Rows)
{
TreeNode tn = new TreeNode();
tn.Text = dr["StrName"].ToString();
tn.Value = dr["IDCode"].ToString();
cc.ChildNodes .Add(tn);
}
conn.Close();
提取数据集最好还是改成用自定义函数来调用,这样写你更容易看懂,还有不明白的百度在线聊

数据层还需要函数,否则你这个结构就不叫三层结构了,你这个函数应该是在数据访问层里到,数据访问层返回给逻辑层的数据不应该是SqlDataReader对象,你可以选择返回String[],List<....>,HashTable等。
数据访问层:
给你几个我的函数吧:
public static void Open()
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
}

public static void Close()
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
public static SqlCommand CreateCommand(string sql)
{
return new SqlCommand(sql, con);
}
public static List<string> RunSQLReturnList(string sql)
{
List<string> info = new List<string>();
SqlCommand cmd = CreateCommand(sql);
Open();
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
for (int i = 0; i < sdr.FieldCount; i++)
{
info.Add(sdr.GetName(i).ToString());
info.Add(sdr.GetValue(i).ToString());
}
}
Close();
return info;
}
public static Hashtable RunSQLReturnHashTable(string sql)
{
List<string> lt = RunSQLReturnList(sql);
Hashtable ht = new Hashtable();
for (int i = 0; i < lt.Count; i += 2)
{
ht[lt[i]] = lt[i + 1];
}
return ht;
}
数据访问层返回给逻辑层HashTable对象hashTable1:
user.username=hashTable1["Name"].ToString();
.........
逻辑层返回给表示层实体对象user
label1.text = user.UserName;

楼上的会有数据并发的异常的

首先 咋a.aspx页面中实例化你的b.cs类
如:b tt=new b();
然后 在调用的地方 写:
SqlDataReader reader=b.SqlDataReader ("你传递的sid参数");//调用 b类的中方法 将返回值用 SqlDataReader接收;
while(reader.read()){
label1.text=string.format("{0}","reader[0]");
label2.text=string.format("{0}","reader[1]");
label3.text=string.format("{0}","reader[3]");
}

这样就可以了。希望能帮助到你 有不明白的可以随时问 呵呵

楼上的够狠。。。(玩笑)

用asp.net读取数据库数据,并不是很难,以楼主说的S1,S2,S3字段为例来读取一下

在b.cs文件中加入如下代码:

//string s1=string.Empty;
//string s2=string.Empty;
//string s3=string.Empty;

public static void ReturnStringFromSqlDataReader(ref string s1,ref string s2,ref string s3,string sid){
SqlDataReader reader=SqlDataReader(sid);//后面的SqlDataReader是楼主定义的静态方法
if(reader.Read()){
s1=reader["s1"] as string;
s2=reader["s2"] as string;
s3=reader["s3"] as string;
}
reader.Close();
}

表示层a.aspx.cs类中在page_load事件中加入
string s1=string.Empty;
string s2=string.Empty;
string s3=string.Empty;

b.ReturnStringFromSqlDataReader(ref s1,ref s2,ref s3,sid);
Lable1.Text=s1;
Lable2.Text=s2;
Lable3.Text=s3;

就能实现楼主的意图了


洛江区13334748887: C#中,我创建了一个类,里面封装了一些数据,我怎么调用类里面的数据? -
刀世萘哌: 您好,首先,我对于这个“三层访问方法”不是很理解……最近比较笨.如果您说的是数据库软件的三层模型(表示层、业务逻辑层、数据访问层)的话,这个的确是涉及数据库软件很常见的架构,访问数据的工作完全由DAL也就是数据访问层...

洛江区13334748887: C#语言中什么是类,怎么调用类? -
刀世萘哌: 类示例: public class TestTime { int hours; int minutes; int seconds;public void passtime() { //implementation of behavior } } 调用过程: public class Test { public static ovid Main { TestTime Mytime=New TestTime //声明类 } }

洛江区13334748887: ASP.NET C#如何调用其他类 -
刀世萘哌: 用new关键字创建对象

洛江区13334748887: asp.net(c#)类的调用 -
刀世萘哌: 用数据绑定,asp.net提供了gridview、listview等数据绑定控件,进行数据绑定就行了. 数据绑定有2种方法 一、用微软提供的sqldatasource作为数据源,不用写任何代码,点一会鼠标就可以绑定了. 二、用数据绑定控件的datasource属性指定数据源进行绑定,一般用ado.net读取数据有绑定给datasource属性,然后执行数据绑定控件的databind()方法就可以了.

洛江区13334748887: 请教如何在自己写的C#类中调用 ASP.NET的Request,server 等对象? -
刀世萘哌: 加命名空间(可能需要在项目中先加引用,再在类中如下引用) using System.Web.SessionState; HttpContext.Current.Session["TotalPage"].ToString(); HttpContext.Current.Request.QueryString["cid"].ToString();

洛江区13334748887: 谁知道百钱百鸡在ASP.net中用C#调用类方法怎么解 -
刀世萘哌: using System;class s{ static void Main() { for (int a = 0; a < 99; a++) { for (int b = 0; b < 99; b++) { for (int c = 0; c < 99; c++) { if ((a + b + c == 100) && ((a * 5) + (b * 3) + (c / 3) == 100) && c % 3 == 0) { Console.WriteLine("公鸡有{0}只,母鸡有{1}只,小鸡有{2}只",a,b,c); } } } } }}

洛江区13334748887: asp.net (vb)如何调用类 -
刀世萘哌: 只要同一个项目里的 就可以调用类里的public属性和方法,类等 你应该先建立一个项目,然后在这个项目里添加新类文件,这些类文件之间可以相互调用

洛江区13334748887: c#逻辑层怎么调用数据访问层的类,并使用它的函数 -
刀世萘哌: BLL层调用DAL层的类的时候 需要先添加对DAL层的引用 使用using 例如DAL层有各类叫UserDAL 他它有一个方法叫GetData(); 那么我在BLL层就额可以按照下面的方式使用 UserDAL dal = new UserDAL(); dal.GetData(); 如有疑问请追问

洛江区13334748887: asp.net c#调用类访问数据库 -
刀世萘哌: 数据层还需要函数,否则你这个结构就不叫三层结构了,你这个函数应该是在数据访问层里到,数据访问层返回给逻辑层的数据不应该是SqlDataReader对象,你可以选择返回String[],List<....>,HashTable等.数据访问层:给你几个我的函数吧:...

洛江区13334748887: asp.net(C#),数据库访问Sqlhelper类中采用静态方法或非静态方法,使用类调用静态方法与使用对象实例调 -
刀世萘哌: 看你的代码 SQLHelper这个类你应该是单独的一个程序集(dll),你得先把SQLHelper的这个程序集添加的你现在的这个项目中 在你现在的项目中,在解决方案资源管理器中的项目上,右键选择“添加引用”,在“浏览”选项卡中选择SQLHelper的dll;当然,如果SQLHelper就在你这个解决方案中(作为一个项目),在“项目”的选项卡中选择就行了……,编译下运行就可以了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网