题主是否想询问“中国银行批量工具更新数据库失败什么原因”?这种现象是设计造成的。更新数据库失败这种现象是设计造成的,此错误的原因是,在ODBC管理器中,可能选择了DSN选项页中的“只读”设置。是连接中包含的链接ODBC表的索引不是唯一的。在这种情况下,SQL不能保证表中的记录是唯一的,并且表中字段的值会随着查询而改变。
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
{
connOpen();
ConsoleWriteLine("数据库连接成功");
return true;
}
catch (SystemException ex)
{
ConsoleWrite(exMessage);
MessageBoxShow("未能连接到数据库");
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 tBASEID = :equipmentId, tBASENAME = :equipmentName,tCA_NAME = :propertyName,tCA_RULETYPE = :ruleType,tCA_RULETEXT = :ruleRequest,tCA_RULETEXT2 = :ruleRequestOther,tCONTENT = :ruleExplain where tCA_ID =:ruleId";
OracleCommand cmd = new OracleCommand(sql, conn);
OracleParameter param_1 = new OracleParameter(":equipmentId", equipmentId);
cmdParametersAdd(param_1);
OracleParameter param_2 = new OracleParameter(":equipmentName", equipmentName + "$");
cmdParametersAdd(param_2);
OracleParameter param_3 = new OracleParameter(":propertyName", propertyName);
cmdParametersAdd(param_3);
OracleParameter param_4 = new OracleParameter(":ruleType", ruleType);
cmdParametersAdd(param_4);
OracleParameter param_5 = new OracleParameter(":ruleRequest", ruleRequest);
cmdParametersAdd(param_5);
OracleParameter param_6 = new OracleParameter(":ruleRequestOther", ruleRequestOther);
cmdParametersAdd(param_6);
OracleParameter param_7 = new OracleParameter(":ruleExplain", ruleExplain);
cmdParametersAdd(param_7);
OracleParameter param_8 = new OracleParameter(":ruleId", ruleId);
cmdParametersAdd(param_8);
int result = cmdExecuteNonQuery();
return result;
}
数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多 *** 作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库
MYSQL数据库字段内容批量更新:
利用sql中case when结构可以根据不同的条件批量更新,举例如下:
UPDATE order
SET display_order = CASE id
WHEN 1 THEN 'value'
WHEN 2 THEN 'value'
WHEN 3 THEN 'value'
END
WHERE id IN (1,2,3)
这句sql的意思是,更新display_order 字段,如果id=1 则display_order 的值为3,如果id=2 则 display_order 的值为4,如果id=3 则 display_order 的值为5。
mysql的项目,需要设计一个快速上载的机制
最后的解决办法是利用了mysql的预处理语句的特性实现的
mysql的预处理语句支持多行数据的预处理,即insertinto(columnName,columnName,)values(,,)(,,)
这样你在绑定输入参数的时候可以在程序里将整张表的数据都绑定好然后调用一次执行就能将整张表的数据插入,比用mysql_query一行一行插入省的几倍的时间
不过你一次发到mysql服务器端的数据多的情况下,要设置my
ini文件下的一个配置项,把服务器允许一次发送的数据包的大小调大就行
没有那么麻烦
批量删除
StringBuilder strSql = new StringBuilder();
strSqlAppend("delete from 表 ");
strSqlAppend(" where id in (" + id+ ") ");
更新也一样
update 表 set name="" where ID in ("1,2 ");
我用oracle的语句格式来写:
update table0
set nearcells = (select nearcells from datatable where lac=table0lac and cellid=table0cellid )
where exists (select 1 from datatale where lac=table0lac and cellid=table0cellid )
以上就是关于中国银行批量工具更新数据库失败全部的内容,包括:中国银行批量工具更新数据库失败、C#如何将datatable中的数据批量更新到MYSQL数据库、C#中如何用list集合批量更新数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)