asp.net(c#)的问题,我想建一个数据库访问操作的类,以方便其它页面的访问。
2个回答
2013-08-30
展开全部
新建一个类,记得引用using System.Data;
using System.Data.SqlClient; 然后里面可以写一个连接数据库的方法,如下:我这个是读取XML配置文件里的连接信息。 /// <summary>
///从SystemConfigure.xml中读取SQL Server连接字符串
/// </summary>
/// <returns></returns>
public static string GetConnectionString()
{
string _xmlFilePath = Application.ExecutablePath.Substring(0,Application.ExecutablePath.LastIndexOf("\\")) + "\\SystemConfigure.xml";
XmlDocument document = new XmlDocument();
document.Load(_xmlFilePath);
return document.DocumentElement.GetElementsByTagName("ConnSQLDB")[0].InnerText; ;
} /// <summary>
/// 测试据库服务器是否能连接成功
/// </summary>
/// <returns></returns>
public static bool ConnectDBServer()
{
SqlConnection Conn = new SqlConnection(connectionString);
try
{
Conn.Open();
return true;
}
catch (Exception)
{
return false;
}
finally
{
Conn.Close();
}
} 写好后别的方法可以直接调用。然后可以写一些方法,如调用存储过程的方法,执行SQL语句的方法:如下:执行SQL语句的方法:/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException E)
{
connection.Close();
throw new Exception(E.Message);
}
}
}
} /// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static void ExecuteSqlTran(ArrayList SQLStringList)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n].ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
} 执行存储过程的方法:/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <returns>SqlDataReader</returns>
public static SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters)
{
try
{
SqlConnection connection = new SqlConnection(connectionString);
SqlDataReader returnReader;
connection.Open();
SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters);
command.CommandType = CommandType.StoredProcedure;
returnReader = command.ExecuteReader();
return returnReader;
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
} 这些是按照自己有什么需求就写什么样的方法,不全相同。
using System.Data.SqlClient; 然后里面可以写一个连接数据库的方法,如下:我这个是读取XML配置文件里的连接信息。 /// <summary>
///从SystemConfigure.xml中读取SQL Server连接字符串
/// </summary>
/// <returns></returns>
public static string GetConnectionString()
{
string _xmlFilePath = Application.ExecutablePath.Substring(0,Application.ExecutablePath.LastIndexOf("\\")) + "\\SystemConfigure.xml";
XmlDocument document = new XmlDocument();
document.Load(_xmlFilePath);
return document.DocumentElement.GetElementsByTagName("ConnSQLDB")[0].InnerText; ;
} /// <summary>
/// 测试据库服务器是否能连接成功
/// </summary>
/// <returns></returns>
public static bool ConnectDBServer()
{
SqlConnection Conn = new SqlConnection(connectionString);
try
{
Conn.Open();
return true;
}
catch (Exception)
{
return false;
}
finally
{
Conn.Close();
}
} 写好后别的方法可以直接调用。然后可以写一些方法,如调用存储过程的方法,执行SQL语句的方法:如下:执行SQL语句的方法:/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException E)
{
connection.Close();
throw new Exception(E.Message);
}
}
}
} /// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static void ExecuteSqlTran(ArrayList SQLStringList)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n].ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
} 执行存储过程的方法:/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <returns>SqlDataReader</returns>
public static SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters)
{
try
{
SqlConnection connection = new SqlConnection(connectionString);
SqlDataReader returnReader;
connection.Open();
SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters);
command.CommandType = CommandType.StoredProcedure;
returnReader = command.ExecuteReader();
return returnReader;
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
} 这些是按照自己有什么需求就写什么样的方法,不全相同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-30
展开全部
我有,sql,和access的,你给我邮箱我发个给你,具体做法说不清,你得上网查查相关资料,一般知道怎么用就行,想要进一步扩展就需要对这些操作类比较熟悉了解了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询