帮我解释下这个类的作用!

l244283799 2011-09-16 09:03:31

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace PerformanceManagement.DLL
{
public class SqlServer
{


// private member variables
OleDbConnection con;
static String m_ConnectionString;

public SqlServer()
{
con = new OleDbConnection(ADOHelper.ConnectionString());

}
public DataSet ExecuteGet(string cmd)
{
this.CheckConnection();

DataSet dataSet = new DataSet();

try
{
OleDbCommand dataCommand = new OleDbCommand(cmd, con);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
dataAdapter.SelectCommand = dataCommand;

dataAdapter.Fill(dataSet, "recordSet");

}
catch (SqlException se)
{
ErrorLog el = new ErrorLog(se);
throw new Exception("Error in SQL", se);
}
this.Dispose();
return dataSet;
}
public OleDbDataReader ExecuteRead(String cmd)
{
this.CheckConnection();

OleDbDataReader dr = null;

try
{
OleDbCommand dc = new OleDbCommand(cmd, con);
dr = dc.ExecuteReader();
return dr;
}
catch (SqlException se)
{
ErrorLog el = new ErrorLog(se);
}
this.Dispose();
return dr;
}
public void ExecuteUpdate(string cmd)
{
this.CheckConnection();
try
{
OleDbCommand dc = new OleDbCommand(cmd, con);
dc.ExecuteNonQuery();
}
catch (SqlException se)
{
ErrorLog el = new ErrorLog(se);
}
this.Dispose();
return;
}
private void CheckConnection()
{
try
{
if (con.State != ConnectionState.Open)
con.Open();
}
catch (System.Data.SqlClient.SqlException se)
{
ErrorLog el = new ErrorLog(se);
throw new Exception("Failed to Open connection.", se);
}
}
public static String ConnectionString()
{
// Pull the ConnectionString from the ASP+ AppSettings section.
// Cache in static field for faster repeat access.
if (m_ConnectionString == null)
{
m_ConnectionString = (String)ConfigurationSettings.AppSettings["ConnectionString"];

if (m_ConnectionString == null)
{
throw new Exception("Connect string value not set in Web.config");
}
}
return m_ConnectionString;

}

public void Dispose()
{
try
{
if (con.State == ConnectionState.Open)
con.Close();
//con = null;
}
catch (Exception e)
{
ErrorLog el = new ErrorLog(e);

}
}
}
}

...全文
161 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
fabulous 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yeness 的回复:]
能访问oracle数据库的类
[/Quote]
oledb是访问access的吧
ysu_gghao 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 l244283799 的回复:]
引用 16 楼 chenyingshu880603 的回复:
道理是一样的,java也有调用方法什么的不是。连接数据库的话都类似

关键是我不知道他写的方法原理是怎么样的。然道你在写代码的时候 乱调用啊
[/Quote]
MSDN是个好地方
cf_nxcxy 2011-09-16
  • 打赏
  • 举报
回复
访问Access数据库的第三方帮助类
CalvinR 2011-09-16
  • 打赏
  • 举报
回复
楼主OleDbConnection改成SqlConnection
还有要该的地方 楼主自己试着吧
Lucenedonet 2011-09-16
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/library/e80y5yhx(v=VS.80).aspx
Lucenedonet 2011-09-16
  • 打赏
  • 举报
回复
简要说下吧,老实说,这些东西,平常都是写好一个类里面的。调用就行了,也没怎么深研究。

一般企业级应用都是链接SQL SERVER ,链接字符串不管2000,还是2005,还是2008,都是一样的。

.net里面访问数据库有一个框架,叫做ADO.NET。其中包括以下重要的类:

1,Connection
链接类,如果链接SQL SERVER 则用SqlConnection
2,Command
对数据源执行命令。同理操作SQL SERVER 则用SqlCommand
3,DataSet
核心中的核心,顾名思义,数据集,是以若干个表的形式存储的,每个表的结构和数据库中的表对象几乎差不多。当然一般情况下只用一个表。
4,DataAdapter
数据适配器,用于填充dataset。

l244283799 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 qwertxp 的回复:]
LZ,你要求解释,该去看MSDN,里面有解释。
[/Quote]
谢拉 去那看看!
qwertxp 2011-09-16
  • 打赏
  • 举报
回复
LZ,你要求解释,该去看MSDN,里面有解释。
l244283799 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 chenyingshu880603 的回复:]
道理是一样的,java也有调用方法什么的不是。连接数据库的话都类似
[/Quote]
关键是我不知道他写的方法原理是怎么样的。然道你在写代码的时候 乱调用啊
Gemini Dean 2011-09-16
  • 打赏
  • 举报
回复
道理是一样的,java也有调用方法什么的不是。连接数据库的话都类似
Gemini Dean 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 l244283799 的回复:]
引用 11 楼 lucenedonet 的回复:
晕,楼主初学者。

刚接收C# 不知道怎么试!
[/Quote]
调用方法会吗?
l244283799 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lucenedonet 的回复:]
晕,楼主初学者。
[/Quote] 我搞java 的 临时给我一个C# 的 蛋疼了。
Gemini Dean 2011-09-16
  • 打赏
  • 举报
回复
一个是oracle,一个sql,能不能用试一下。不行的话看看哪里出错了,根据错误提示改一下。
l244283799 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lucenedonet 的回复:]
晕,楼主初学者。
[/Quote]
刚接收C# 不知道怎么试!
Lucenedonet 2011-09-16
  • 打赏
  • 举报
回复
晕,楼主初学者。
弦弦 2011-09-16
  • 打赏
  • 举报
回复
自己试试不就知道勒。
l244283799 2011-09-16
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using Models;


namespace DAL
{
public class SqlHelper
{
// public SqlConnection getConn(string baseName,string userName,string userPwd)
// {
// SqlConnection conn = new SqlConnection("Data Source=(local);Database=" + baseName + ";Uid=" + userName + ";Pwd=" + userPwd + ";");
// return conn;
// }
private string baseName = "SingleExamSys";
private string userName = "sa";
private string userPwd = "sa";
/// <summary>
/// 传入参数数据库名,用户名与密码登陆
/// </summary>
/// <param name="baseName"></param>
/// <param name="userName"></param>
/// <param name="userPwd"></param>
public void setConn(string baseName, string userName, string userPwd)
{
this.baseName = baseName;
this.userName = userName;
this.userPwd = userPwd;
}
static SqlConnection conn;
public static void closeConn()
{
conn.Close();
}
public SqlConnection getConn()
{
conn = new SqlConnection("Data Source=(local);Database=" + baseName + ";Uid=" + userName + ";Pwd=" + userPwd + ";");
conn.Open();
return conn;
}
/// <summary>
/// 带有一个参数返回DataTble对象的方法
/// </summary>
/// <param name="cmdString"></param>
/// <returns></returns>
public DataTable getTable(string cmdString)
{
DataTable dt = new DataTable();
SqlConnection conn = getConn();
SqlDataAdapter sda = new SqlDataAdapter(cmdString, conn);
sda.Fill(dt);
conn.Close();
return dt;
}

/// <summary>
/// 带有一个参数返回SqlDataReader对象的方法
/// </summary>
/// <param name="cmdString"></param>
/// <returns></returns>
public SqlDataReader getReader(string cmdString)
{
SqlConnection conn = getConn();
SqlCommand com = new SqlCommand(cmdString, conn);
SqlDataReader rd = com.ExecuteReader();
//conn.Close();
return rd;
}
/// <summary>
/// 带有一个参数判断是否删除成功并返回bool值的方法
/// </summary>
/// <param name="delCmdString"></param>
/// <returns></returns>

public bool delData(string delCmdString)
{
SqlConnection conn = getConn();
SqlCommand com = new SqlCommand(delCmdString, conn);
int count = com.ExecuteNonQuery();
return testCount(count);
}
/// <summary>
/// 带有一个参数判断是否更新成功并返回bool值的方法
/// </summary>
/// <param name="updateCmdString"></param>
/// <returns></returns>
public bool updateData(string updateCmdString)
{
SqlConnection conn = getConn();
SqlCommand com = new SqlCommand(updateCmdString, conn);
int count = com.ExecuteNonQuery();
return testCount(count);
}
/// <summary>
/// 带有一个参数判断是否插入成功并返回bool值的方法
/// </summary>
/// <param name="insertCmdString"></param>
/// <returns></returns>
public bool insertData(string insertCmdString)
{
SqlConnection conn = getConn();
SqlCommand com = new SqlCommand(insertCmdString, conn);
int count = com.ExecuteNonQuery();
return testCount(count);
}

public bool testCount(int count)
{
bool flag = false;
if (count > 0)
{
flag = true;
}
return flag;
}
/// <summary>
/// 添加一行
/// </summary>
/// <param name="colName"></param>
/// <param name="tbName"></param>
/// <returns></returns>
public int getId(string colName, string tbName)
{
SqlConnection conn = getConn();
string str = "select MAX(" + colName + ") from " + tbName;
DataTable dt = getTable(str);
int id = Convert.ToInt32(dt.Rows[0][0].ToString());
return (id + 1);
}
/// <summary>
/// 判断是否存在数据项
/// </summary>
/// <param name="cmdSql"></param>
/// <returns></returns>
public bool existData(string cmdSql)
{
SqlConnection con = getConn();
SqlCommand cmd = new SqlCommand(cmdSql, con);
int count = Convert.ToInt32(cmd.ExecuteScalar());
if (count > 0)
return true;
return false;

}
}
}
这个能用来连接sql2000吗?
l244283799 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jjx0224 的回复:]
上网找一个 sqlhelper搞定~
[/Quote]
我是想知道每个方法里面 每句话的意思。不是单独搞定不搞定的问题!
ycagri 2011-09-16
  • 打赏
  • 举报
回复
这明明就是采用oledb方式访问数据库的方式
此类用于sql2000是可以,但最好使用sqlclient
弦弦 2011-09-16
  • 打赏
  • 举报
回复
OleDbConnection 凡是有ole的改成sql
加载更多回复(5)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧