oracle 插不进数据 没报错,OracleDataAdapter.Update()写不进数据库也不报错。求帮助啊。…...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

public static void Adapter_updateDB(DataTable dt)

{

string sql_str = "insert into t_avgwindspeed(DATETIME,WINDMILLNUM,WINDSPEED,POWER)values(@DATETIME,@WINDMILLNUM,@WINDSPEED,@POWER)";

//string sql_str = "insert into t_avgwindspeed(DATETIME,WINDMILLNUM,WINDSPEED,POWER,TIMECELL)values(@DATETIME,@WINDMILLNUM,@WINDSPEED,@POWER,@TIMECELL)";

Connection = new OracleConnection(Conn_str);

OracleCommand com = new OracleCommand(sql_str,Connection);

com.Parameters.Add("@DATETIME", OracleDbType.Date, 32, "时间");

com.Parameters.Add("@WINDMILLNUM", OracleDbType.Varchar2, 32, "风机名");

com.Parameters.Add("@WINDSPEED", OracleDbType.Varchar2, 32, "风速");

com.Parameters.Add("@POWER", OracleDbType.Varchar2, 32, "功率");

//com.Parameters.Add("@TIMECELL", OracleDbType.Varchar2, 32, "时间间隔");

com.UpdatedRowSource = UpdateRowSource.None;

OracleDataAdapter da = new OracleDataAdapter();

da.InsertCommand = com;

Connection.Open();

da.Update(dt);

Connection.Close();

}

在C#中,Oracle.ManagedDataAccess.Client是一个用于连接Oracle数据库的托管数据访问客户端库,可以用来执行各种数据库操作,包括封装实体类进行增删改查操作和监听表数据变化。 1. 封装实体类进行增删改查操作: 要使用Oracle.ManagedDataAccess.Client进行数据操作,首先需要安装NuGet包Oracle.ManagedDataAccess。接着创建一个实体类,该类的属性与数据库表的列相对应。然后,可以使用OracleCommand、OracleDataAdapter等类来执行SQL语句,并通过OracleConnection连接到数据库。 例如,创建一个简单的增删改查操作可能如下所示: ```csharp // 创建连接 using (OracleConnection conn = new OracleConnection(connString)) { try { conn.Open(); // 插入数据 string insertSQL = "INSERT INTO TABLE_NAME (COLUMN1, COLUMN2) VALUES (:value1, :value2)"; using (OracleCommand insertCmd = new OracleCommand(insertSQL, conn)) { insertCmd.CommandType = CommandType.Text; insertCmd.Parameters.Add("value1", OracleDbType.Int32).Value = 123; insertCmd.Parameters.Add("value2", OracleDbType.Varchar2).Value = "Test"; insertCmd.ExecuteNonQuery(); } // 查询数据 string selectSQL = "SELECT * FROM TABLE_NAME"; using (OracleCommand selectCmd = new OracleCommand(selectSQL, conn)) { OracleDataAdapter adapter = new OracleDataAdapter(selectCmd); DataTable dataTable = new DataTable(); adapter.Fill(dataTable); // 使用dataTable进行后续操作 } // 更新数据 string updateSQL = "UPDATE TABLE_NAME SET COLUMN1 = :value1 WHERE CONDITION"; using (OracleCommand updateCmd = new OracleCommand(updateSQL, conn)) { updateCmd.Parameters.Add("value1", OracleDbType.Int32).Value = 456; updateCmd.ExecuteNonQuery(); } // 删除数据 string deleteSQL = "DELETE FROM TABLE_NAME WHERE CONDITION"; using (OracleCommand deleteCmd = new OracleCommand(deleteSQL, conn)) { deleteCmd.ExecuteNonQuery(); } } catch (Exception ex) { // 处理异常 } } ``` 2. 监听表数据变化: Oracle提供了Oracle Notification Service来监听表数据变化,这需要在Oracle数据库上设置触发器和订阅。 例如,创建一个触发器并监听变化: ```sql CREATE OR REPLACE TRIGGER table_change_trigger AFTER INSERT OR UPDATE OR DELETE ON table_name FOR EACH ROW BEGIN IF INSERTING THEN -- 插入操作后要做的处理 ELSIF UPDATING THEN -- 更新操作后要做的处理 ELSIF DELETING THEN -- 删除操作后要做的处理 END IF; END; ``` 在C#中,你可以使用OracleConnection的RegisterNotification方法来注册通知,并处理异步通知事件来响应数据库表的数据变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值