C#利用update更新数据到oracle数据库

现在我要利用C#中的update函数将表格的数据更新到oracle的数据库,但是我知道oracle的数据库更新数据都要写上commit提交,我直接update上去有没有问... 现在我要利用C#中的update函数将表格的数据更新到oracle的数据库,但是我知道oracle的数据库更新数据都要写上commit提交,我直接update上去有没有问题,会不会造成死锁?如果不能这样做,要怎样才可以构造事务更新(除了使用存储过程),还有下面的写法出错,提示连接关闭,要怎样该才对?
private Boolean orclupdate(DataTable dt)
{
OracleTransaction tran = null;
Boolean f = false;
try
{
tran = orclconn.BeginTransaction();
orcladapter.Update(dt);
tran.Commit();
f = true;
}
catch (Exception ex)
{
tran.Rollback();
MessageBox.Show("数据更新错误!" + ex.Message);
}
return f;
}
展开
 我来答
千锋教育
2016-01-03 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
C#利用update更新数据到oracle数据库:
第一步:打开oracle数据库
public static string connString = "";
public static OracleConnection conn = null;

//打开数据库连接
public static bool Open()
{
//从配置文件中获取连接字符串
//配置文件需要放在项目目录下的bin\Release中
connString = getXmlValue("connString");
conn = new OracleConnection(getXmlValue("connString"));
try
{
conn.Open();
Console.WriteLine("数据库连接成功");
return true;
}
catch (System.Exception ex)
{
Console.Write(ex.Message);
MessageBox.Show("未能连接到数据库");
return false;
}
第二步:执行更新方法:
public static int update(int ruleId, int equipmentId, String equipmentName, String propertyName, int ruleType, String ruleRequest, String ruleRequestOther, String ruleExplain)
{
String sql = "update Device_Attr t set t.BASEID = :equipmentId, t.BASENAME = :equipmentName,t.CA_NAME = :propertyName,t.CA_RULETYPE = :ruleType,t.CA_RULETEXT = :ruleRequest,t.CA_RULETEXT2 = :ruleRequestOther,t.CONTENT = :ruleExplain where t.CA_ID =:ruleId";
OracleCommand cmd = new OracleCommand(sql, conn);
OracleParameter param_1 = new OracleParameter(":equipmentId", equipmentId);
cmd.Parameters.Add(param_1);
OracleParameter param_2 = new OracleParameter(":equipmentName", equipmentName + "$");
cmd.Parameters.Add(param_2);
OracleParameter param_3 = new OracleParameter(":propertyName", propertyName);
cmd.Parameters.Add(param_3);
OracleParameter param_4 = new OracleParameter(":ruleType", ruleType);
cmd.Parameters.Add(param_4);
OracleParameter param_5 = new OracleParameter(":ruleRequest", ruleRequest);
cmd.Parameters.Add(param_5);
OracleParameter param_6 = new OracleParameter(":ruleRequestOther", ruleRequestOther);
cmd.Parameters.Add(param_6);
OracleParameter param_7 = new OracleParameter(":ruleExplain", ruleExplain);
cmd.Parameters.Add(param_7);
OracleParameter param_8 = new OracleParameter(":ruleId", ruleId);
cmd.Parameters.Add(param_8);
int result = cmd.ExecuteNonQuery();
return result;
}
puresean
推荐于2016-09-14 · TA获得超过599个赞
知道答主
回答量:36
采纳率:0%
帮助的人:54.1万
展开全部
private Boolean orclupdate(DataTable dt)
{
OracleTransaction tran = null;
Boolean f = false;
try
{
tran = orclconn.BeginTransaction();
tran.open();
orcladapter.Update(dt);
tran.Commit();
f = true;
}
catch (Exception ex)
{
tran.Rollback();
tran.close();
MessageBox.Show("数据更新错误!" + ex.Message);
}
return f;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式