(1)原材料
1.装oracle客户端
2.使用Oracle.DataAccess.dll这个扩展
3.using Oracle.DataAccess.Client;
(2)如何执行语句
批量插入就要绑定参数(这里是重点)
1.一定要注意参数的位置和sql语句中的位置赋值顺序要完全一模一样才可以否则一定会报一个错
2.参数前一定要加:号用来表示他是参数
/*对数据库操作开始*/
OracleCommand comm = new OracleCommand();
comm.ArrayBindCount = STARTDAT.Length;
//时间
OracleParameter dateTm = new OracleParameter("dateTm", OracleDbType.Date);
dateTm.Direction = ParameterDirection.Input;
dateTm.Value = STARTDATTure;
comm.Parameters.Add(dateTm);
//台站id
OracleParameter stationID = new OracleParameter("stationId", OracleDbType.Varchar2);
stationID.Direction = ParameterDirection.Input;
stationID.Value = stationId;
comm.Parameters.Add(stationID);
//测点id
OracleParameter pointID = new OracleParameter("pointId", OracleDbType.Varchar2);
pointID.Direction = ParameterDirection.Input;
pointID.Value = pointId;
comm.Parameters.Add(pointID);
//侧向id
OracleParameter itemID = new OracleParameter("itemId", OracleDbType.Varchar2);
itemID.Direction = ParameterDirection.Input;
itemID.Value = itemId;
comm.Parameters.Add(itemID);
//未知此字段含义
OracleParameter samP = new OracleParameter("samp", OracleDbType.Varchar2);
samP.Direction = ParameterDirection.Input;
samP.Value = samp;
comm.Parameters.Add(samP);
//24值
OracleParameter hourValue = new OracleParameter("hourValue", OracleDbType.Varchar2);
hourValue.Direction = ParameterDirection.Input;
hourValue.Value = OBSVALUE;
comm.Parameters.Add(hourValue);
//
OracleParameter DATEI = new OracleParameter("DATEINDEX", OracleDbType.Varchar2);
DATEI.Direction = ParameterDirection.Input;
DATEI.Value = DATEINDEX;
comm.Parameters.Add(DATEI);
try
{
comm.Connection = con;
comm.CommandType = CommandType.Text;
comm.CommandText = "INSERT INTO XIAOHUIHUI." + TableName + "(STARTDATE,STATIONID,POINTID,ITEMID,SAMPLERATE,OBSVALUE,DATE_INDEX)VALUES(to_date(:dateTm ,'yyyy-mm-dd hh24:mi:ss'),:stationId,:pointId,:itemId,:samp,:hourValue,:DATEINDEX)";
int sqlNum = comm.ExecuteNonQuery();
}
catch (OracleException e)
{
string result = e.Message;
MessageBox.Show("出现错误请改正:" + result);
}
/*对数据库操作结束*/
dividedNum--;
hourDataTable.Clear();
con.Close();