C/C++ Qt TableDelegate 自定义代
529 2023-04-03 03:43:36
使用Oracle.ManagedDataAccess.Client.dll
注意:注意不要使用System.Data.OracleClient,vs会提示过时
关于Oracle数据库连接字符串格式参考:
<connectionStrings><add name="connStringForOracle" connectionString="user id=用户ID;password=密码;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=服务IP地址)(PORT=端口号))(CONNECT_DATA=(SERVER=服务名)(SERVICE_NAME=服务名)))" /></connectionStrings>
简易的封装一个Oracle辅助类:
//添加命名空间:using Oracle.ManagedDataAccess.Client;public class OracleHelper{ private static readonly string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["connStringForOracle"].ToString(); //创建连接对象 public static OracleConnection GetConn() { var conn = new OracleConnection(connectionString); conn.Open(); return conn; } //执行非查询语句返回受影响行数 public static int ExecuteNoQuery(string sql,CommandType type=CommandType.Text,params SqlParameter[] param) { using (var conn = GetConn()) { using (OracleCommand cmd=new OracleCommand (sql,conn)) { if (null!=param) { cmd.Parameters.AddRange(param); } cmd.CommandType = type; return cmd.ExecuteNonQuery(); } } } //返回查询结果的第一行第一个单元格的数据 public static object ExecuteScalar(string sql,CommandType type=CommandType.Text,params SqlParameter[] param) { using (var conn = GetConn()) { using (OracleCommand cmd=new OracleCommand(sql,conn)) { if (null!=param) { cmd.Parameters.AddRange(param); } cmd.CommandType = type; return cmd.ExecuteScalar(); } } } //返回查询结果集 public static DataSet GetDataSet(string sql, CommandType type = CommandType.Text, params SqlParameter[] param) { using (var conn = GetConn()) { using (OracleDataAdapter adapter = new OracleDataAdapter(sql, conn)) { if (null != param) { adapter.SelectCommand.Parameters.AddRange(param); } adapter.SelectCommand.CommandType = type; DataSet ds = new DataSet(); adapter.Fill(ds); return ds; } } }}