c#中使用adodb.command 如何在c#中使用adodb.command执行SQL语句?请各位大侠指点一下,最好有个完整的示例代码嗯,要执行SQL语句的,不是执行存储过程的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public abstract class SqlHelper { /// <summary> /// 当前数据库连接字符串 /// </summary> public static readonly String ConnectionString = ConfigurationManager.AppSettings["connectionString"]; /// <summary> /// 初始化连接字符串 /// </summary> static SqlHelper() { } /// <summary> /// 根据当前默认连接字符串,执行指定SQL语句,返回影响行数 /// </summary> /// <param name="cmdText">SQL语</param> /// <returns>影响行数</returns> public static int ExecuteNonQuery(String cmdText) { return ExecuteNonQuery(null, CommandType.Text, cmdText, null); } /// <summary> /// 根据当前默认连接字符串,执行指定SQL语句,返回影响行数 /// </summary> /// <param name="cmdText">SQL语句</param> /// <param name="commandParameters">参数列表</param> /// <returns>影响行数</returns> public static int ExecuteNonQuery(String cmdText, params SqlParameter[] commandParameters) { return ExecuteNonQuery(null, CommandType.Text, cmdText, commandParameters); } /// <summary> /// 根据当前默认连接字符串,指明命令文本,解析命令方式和参数执行命令,返回影响行数 /// </summary> /// <param name="cmdText">存储过程名称</param> /// <param name="cmdType">解析命令字符串的类型</param> /// <param name="commandParameters">参数列表</param> /// <returns>影响行数</returns> public static int ExecuteNonQuery(String cmdText, CommandType cmdType, params SqlParameter[] commandParameters) { return ExecuteNonQuery(null, cmdType, cmdText, commandParameters); } /// <summary> /// 内部方法: 执行Update类型的cmdText,返回影响行数 /// </summary> public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, String cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); SqlConnection conn = null; if (null == trans) conn = new SqlConnection(ConnectionString); else conn = trans.Connection; int val = 0; PrepareCommand(cmd, conn, trans, cmdType, cmdText, commandParameters); val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } /// <summary> /// 内部方法: 根据命令字符串文本查询结果集,返回SqlDataReader /// </summary> private static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(connectionString); PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Clear(); return reader; } /// <summary> /// 根据当前默认连接字符串,指定命令字符串文本,解析命令方式和参数列表进行查询,返回DataSet /// </summary> /// <param name="cmdText">命令字符串文本</param> /// <param name="cmdType">解析命令方式</param> /// <param name="commandParameters">参数集合</param> /// <returns>返回DataSet</returns> public static DataSet ExecuteDataSet(String cmdText, CommandType cmdType, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(ConnectionString); PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; da.Fill(ds); return ds; } /// <summary> /// 内部方法: 返回结果集中第一行的第一列值 /// </summary> private static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); using (SqlConnection connection = new SqlConnection(connectionString)) { PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return val; } } /// <summary> /// 根据当前默认连接字符串,执行指定SQL语句,返回SqlDataReader /// </summary> /// <param name="cmdText">SQL语句</param> /// <returns>查询结果集合</returns> public static SqlDataReader ExecuteReader(string cmdText) { return ExecuteReader(ConnectionString, CommandType.Text, cmdText, null); } /// <summary> /// 根据当前默认连接字符串,执行指定SQL语句,返回SqlDataReader /// </summary> /// <param name="cmdText">命令字符串文本</param> /// <param name="cmdType">解析cmd命令的方式</param> /// <returns>查询结果集合</returns> public static SqlDataReader ExecuteReader(string cmdText, CommandType cmdType) { return ExecuteReader(ConnectionString, cmdType, cmdText, null); } /// <summary> /// 根据当前默认连接字符串,执行指定SQL语句,返回DataSet /// </summary> /// <param name="cmdText">SQL语句</param> /// <returns>返回DataSet</returns> public static DataSet ExecuteDataSet(String cmdText) { return ExecuteDataSet(cmdText, CommandType.Text, null); } /// <summary> /// 根据当前默认连接字符串,指定命令字符串文本和解析命令方式进行查询,返回DataSet /// </summary> /// <param name="cmdText">SQL语句</param> /// <returns>返回DataSet</returns> public static DataSet ExecuteDataSet(String cmdText, CommandType cmdType) { return ExecuteDataSet(cmdText, cmdType, null); } /// <summary> /// 根据sql查询语句返回结果集中的第一行第一列值 /// </summary> /// <param name="cmdText">sql语句</param> /// <param name="commandParameters">参数列表</param> /// <returns>返回结果</returns> public static object ExecuteScalarBySQL(string cmdText) { return ExecuteScalar(ConnectionString, CommandType.Text, cmdText, null); } /// <summary> /// 为Command执行前作预备工作 /// </summary> /// <param name="cmd">需要执行的T_SQL语句或者存储过程</param> /// <param name="conn"></param> /// <param name="trans">需要处理的事务</param> /// <param name="cmdType">解析命令字符的类型</param> /// <param name="cmdText">需要执行T-SQL语句或者存储过程名称</param> /// <param name="cmdParms">参数列表</param> private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, String cmdText, SqlParameter[] cmdParms) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; cmd.CommandType = cmdType; if (trans != null) cmd.Transaction = trans; if (cmdParms != null) { foreach (SqlParameter parm in cmdParms) cmd.Parameters.Add(parm); } } } 老大,看好标题……是ADODB.Command 你访问什么数据库?为什么非要用adodb.command呢?感觉这个好像是asp中的吧?在C#中有一些列访问数据库的类,从OleDB、SqlClient、ODBC、OracleClient到MySQLClient,从mdb、excel、csv、Oracle、MySQL、SQL Server。 是为了方便事务回滚因为我在c#中调用a模块,而a模块是vb做的,其中要用到ADODB.Command进行数据库操作,也就是说我和那个模块要共用一个ADODB.Command 反射加载的DLL如何指定app.config? 怎么继承Dev控件NavBarControl 怎么双击grdview弹出新的页面关闭本页面 流量监视 小问题,C#关于FOR循环的问题. 新手用XmlReaderSettings 读XML文件。。。老是不行。请指教 怎样从X509证书中获得publickey的modulus和exponent Visual Stdio 2005设置问题 ASP.NET(C#)连接ACCESS数据库遇到麻烦,连不上! 调用WCF报请求被终止错误 C#程序执行时间问题!大家都进来帮我看看~~感谢! 请教
public abstract class SqlHelper
{
/// <summary>
/// 当前数据库连接字符串
/// </summary>
public static readonly String ConnectionString = ConfigurationManager.AppSettings["connectionString"]; /// <summary>
/// 初始化连接字符串
/// </summary>
static SqlHelper()
{ } /// <summary>
/// 根据当前默认连接字符串,执行指定SQL语句,返回影响行数
/// </summary>
/// <param name="cmdText">SQL语</param>
/// <returns>影响行数</returns>
public static int ExecuteNonQuery(String cmdText)
{
return ExecuteNonQuery(null, CommandType.Text, cmdText, null);
} /// <summary>
/// 根据当前默认连接字符串,执行指定SQL语句,返回影响行数
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="commandParameters">参数列表</param>
/// <returns>影响行数</returns>
public static int ExecuteNonQuery(String cmdText, params SqlParameter[] commandParameters)
{
return ExecuteNonQuery(null, CommandType.Text, cmdText, commandParameters);
} /// <summary>
/// 根据当前默认连接字符串,指明命令文本,解析命令方式和参数执行命令,返回影响行数
/// </summary>
/// <param name="cmdText">存储过程名称</param>
/// <param name="cmdType">解析命令字符串的类型</param>
/// <param name="commandParameters">参数列表</param>
/// <returns>影响行数</returns>
public static int ExecuteNonQuery(String cmdText, CommandType cmdType, params SqlParameter[] commandParameters)
{
return ExecuteNonQuery(null, cmdType, cmdText, commandParameters);
} /// <summary>
/// 内部方法: 执行Update类型的cmdText,返回影响行数
/// </summary>
public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, String cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
SqlConnection conn = null;
if (null == trans)
conn = new SqlConnection(ConnectionString);
else
conn = trans.Connection;
int val = 0; PrepareCommand(cmd, conn, trans, cmdType, cmdText, commandParameters);
val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
} /// <summary>
/// 内部方法: 根据命令字符串文本查询结果集,返回SqlDataReader
/// </summary>
private static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connectionString); PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Clear();
return reader;
} /// <summary>
/// 根据当前默认连接字符串,指定命令字符串文本,解析命令方式和参数列表进行查询,返回DataSet
/// </summary>
/// <param name="cmdText">命令字符串文本</param>
/// <param name="cmdType">解析命令方式</param>
/// <param name="commandParameters">参数集合</param>
/// <returns>返回DataSet</returns>
public static DataSet ExecuteDataSet(String cmdText, CommandType cmdType, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(ConnectionString);
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds);
return ds;
} /// <summary>
/// 内部方法: 返回结果集中第一行的第一列值
/// </summary>
private static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
using (SqlConnection connection = new SqlConnection(connectionString))
{
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}
} /// <summary>
/// 根据当前默认连接字符串,执行指定SQL语句,返回SqlDataReader
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <returns>查询结果集合</returns>
public static SqlDataReader ExecuteReader(string cmdText)
{
return ExecuteReader(ConnectionString, CommandType.Text, cmdText, null);
} /// <summary>
/// 根据当前默认连接字符串,执行指定SQL语句,返回SqlDataReader
/// </summary>
/// <param name="cmdText">命令字符串文本</param>
/// <param name="cmdType">解析cmd命令的方式</param>
/// <returns>查询结果集合</returns>
public static SqlDataReader ExecuteReader(string cmdText, CommandType cmdType)
{
return ExecuteReader(ConnectionString, cmdType, cmdText, null);
} /// <summary>
/// 根据当前默认连接字符串,执行指定SQL语句,返回DataSet
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <returns>返回DataSet</returns>
public static DataSet ExecuteDataSet(String cmdText)
{
return ExecuteDataSet(cmdText, CommandType.Text, null);
} /// <summary>
/// 根据当前默认连接字符串,指定命令字符串文本和解析命令方式进行查询,返回DataSet
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <returns>返回DataSet</returns>
public static DataSet ExecuteDataSet(String cmdText, CommandType cmdType)
{
return ExecuteDataSet(cmdText, cmdType, null);
} /// <summary>
/// 根据sql查询语句返回结果集中的第一行第一列值
/// </summary>
/// <param name="cmdText">sql语句</param>
/// <param name="commandParameters">参数列表</param>
/// <returns>返回结果</returns>
public static object ExecuteScalarBySQL(string cmdText)
{
return ExecuteScalar(ConnectionString, CommandType.Text, cmdText, null);
} /// <summary>
/// 为Command执行前作预备工作
/// </summary>
/// <param name="cmd">需要执行的T_SQL语句或者存储过程</param>
/// <param name="conn"></param>
/// <param name="trans">需要处理的事务</param>
/// <param name="cmdType">解析命令字符的类型</param>
/// <param name="cmdText">需要执行T-SQL语句或者存储过程名称</param>
/// <param name="cmdParms">参数列表</param>
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, String cmdText, SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open(); cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.CommandType = cmdType; if (trans != null)
cmd.Transaction = trans; if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
}
在C#中有一些列访问数据库的类,从OleDB、SqlClient、ODBC、OracleClient到MySQLClient,从mdb、excel、csv、Oracle、MySQL、SQL Server。
因为我在c#中调用a模块,而a模块是vb做的,其中要用到ADODB.Command进行数据库操作,
也就是说我和那个模块要共用一个ADODB.Command