我刚参加工作,让我们做一个已知SQL server表里的字段和Oracle表里的字段相同,用C#把SQL server里的数据导入到Oracle里!(最好有代码)
解决方案 »
- 请教可以通过API获取当前右键菜单的名柄吗?并添加自己的条目
- 简单问题 :提示不会实现接口成员
- 连接数据库问题
- C#如何过漏字符串中的其它字符仅输出汉字呢?
- 我执行两个存储过程返回查询到的记录集,想将两个记录集放在一个DATESET里..第一个放在table[0]里.第二个放在table[1]里.怎么帮?
- .net里编码转换问题,gb2312的显示出来
- 如何捕捉滚动条移动事件?
- .net2.0 安装问题
- 技术大攻关:如何在页面上嵌入一个Excel表!!!(要多少分就给多少分)
- 我想做一个可以在窗体中拖动控件的程序,应该怎么做?控件名_MouseMove和控件名_DragDrop总是不尽人意
- 如何在两个用户控件中互相传递一个字符传??
- ManualResetEvent的Reset问题? 请教大家!
————————————————————
using System;
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Data;
using System.Data.OleDb;
using System.Configuration;namespace pmg.Components
{
/// <summary>
/// 通用的数据库处理类,通过OLEDB与数据库连接
/// </summary>
public class Database : IDisposable
{
private OleDbConnection con; #region 执行SQL语句返回受影响的行数
/// <summary>
/// 执行SQL语句返回受影响的行数
/// </summary>
/// <param name="SqlStr">SQL语句</param>
/// <returns>返回受影响的行数</returns>
public int RunSql(string SqlStr)
{
OleDbCommand cmd=this.CreateSql(SqlStr,null);
int i=cmd.ExecuteNonQuery();
this.Close();
return i;
}
#endregion #region 执行SQL查询语句并返回第一行的第一列
/// <summary>
/// 执行SQL查询语句并返回第一行的第一列
/// </summary>
/// <param name="SqlStr">SQL语句</param>
/// <returns>第一行的第一列</returns>
public object RunSql_ReturnValue(string SqlStr)
{
OleDbCommand cmd=this.CreateSql(SqlStr,null);
object i=cmd.ExecuteScalar();
this.Close();
return i;
}
#endregion #region 执行SQL语句返回OleDbDataReader对象
/// <summary>
/// 执行SQL语句返回OleDbDataReader对象
/// </summary>
/// <param name="SqlStr">SQL语句</param>
/// <param name="dataReader">要返回OleDbDataReader对象</param>
public void RunSql(string SqlStr,out OleDbDataReader dataReader)
{
OleDbCommand cmd = CreateSql(SqlStr,null);
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
#endregion #region 执行带参数的SQL语句并返回受影响的行数
/// <summary>
/// 执行带参数的SQL语句并返回受影响的行数
/// </summary>
/// <param name="SqlStr"></param>
/// <param name="prams"></param>
/// <returns></returns>
public int RunSql(string SqlStr,OleDbParameter[] prams)
{
OleDbCommand cmd=this.CreateSql(SqlStr,prams);
int i=cmd.ExecuteNonQuery();
this.Close();
return i;
}
#endregion #region 执行带参数的SQL语句并返回第一行的第一列
/// <summary>
/// 执行带参数的SQL语句并返回第一行的第一列
/// </summary>
/// <param name="SqlStr"></param>
/// <param name="prams"></param>
/// <returns></returns>
public object RunSql_ReturnValue(string SqlStr,OleDbParameter[] prams)
{
OleDbCommand cmd=this.CreateSql(SqlStr,prams);
object i=cmd.ExecuteScalar();
this.Close();
return i;
}
#endregion #region 执行带参数的SQL语句并返回OleDbDataReader对象
/// <summary>
/// 执行带参数的SQL语句并返回OleDbDataReader对象
/// </summary>
/// <param name="SqlStr"></param>
/// <param name="prams"></param>
/// <param name="dataReader"></param>
public void RunSql(string SqlStr,OleDbParameter[] prams,out OleDbDataReader dataReader)
{
OleDbCommand cmd = CreateSql(SqlStr,prams);
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
#endregion #region 执行存储过程
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <returns>返回存储过程返回值</returns>
public void RunProc(string procName, OleDbParameter[] prams)
{
OleDbCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
}
#endregion #region 创建一个OleDbCommand对象以此来执行SQL语句
/// <summary>
/// 创建一个OleDbCommand对象以此来执行SQL语句
/// </summary>
/// <param name="SqlStr">SQL语句</param>
/// <param name="parms">所需的参数</param>
/// <returns>返回OleDbCommand对象</returns>
private OleDbCommand CreateSql(string SqlStr,OleDbParameter[] prams)
{
// 确认打开连接
Open(); OleDbCommand cmd = new OleDbCommand(SqlStr, con);
cmd.CommandType = CommandType.Text; // 依次把参数传入存储过程
if (prams != null)
{
foreach (OleDbParameter parameter in prams)
cmd.Parameters.Add(parameter);
} return cmd;
}
#endregion #region 创建一个OleDbCommand对象以此来执行存储过程
/// <summary>
/// 创建一个OleDbCommand对象以此来执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <returns>返回SqlCommand对象</returns>
private OleDbCommand CreateCommand(string procName, OleDbParameter[] prams)
{
// 确认打开连接
Open();
OleDbCommand cmd = new OleDbCommand(procName, con);
cmd.CommandType = CommandType.StoredProcedure; // 依次把参数传入存储过程
if (prams != null)
{
foreach (OleDbParameter parameter in prams)
cmd.Parameters.Add(parameter);
}
return cmd;
}
#endregion #region 传入输入参数
/// <summary>
/// 传入输入参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter MakeInParam(string ParamName, OleDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
#endregion #region 传入返回值参数
/// <summary>
/// 传入返回值参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter MakeOutParam(string ParamName, OleDbType DbType, int Size)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
}
#endregion #region 传入返回值参数
/// <summary>
/// 传入返回值参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter MakeReturnParam(string ParamName, OleDbType DbType, int Size)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
}
#endregion
#region 生成存储过程参数
/// <summary>
/// 生成存储过程参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方向</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter MakeParam(string ParamName, OleDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
OleDbParameter param; if(Size > 0)
param = new OleDbParameter(ParamName, DbType, Size);
else
param = new OleDbParameter(ParamName, DbType); param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value; return param;
}
#endregion #region 打开数据库连接.
/// <summary>
/// 打开数据库连接.
/// </summary>
private void Open()
{
// 打开数据库连接
if (con == null)
{
con = new OleDbConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
}
if(con.State ==System.Data.ConnectionState.Closed)
con.Open(); }
#endregion #region 关闭数据库连接
/// <summary>
/// 关闭数据库连接
/// </summary>
public void Close()
{
if (con != null)
con.Close();
}
#endregion #region 释放资源
/// <summary>
/// 释放资源
/// </summary>
public void Dispose()
{
// 确认连接是否已经关闭
if (con != null)
{
con.Dispose();
con = null;
}
}
#endregion
}
}
http://www.connectionstrings.com/
1.建立sql连接 2.建立ORACLE连接
3.读取sql里面的数据,用datareader或dataset都可以
4,把DataReader里面的数据循环的插入Oracle里