㈠ C#怎么快速批量更新数据库
adataadter.selectcommand = "select changefield from table"
iadataadter.update(ds)
㈡ C# 数据库批量更新问题
有一个办法,可能是你想要的。但是不保证一定能实现你的目的。
在C#中有一个SqlCommandBuilder类,该类用来批量自动更新表数据变化,
说是自动更新,其实是根据已知的select语句,来自动生成其他的update,delete语句。
我以前项目的sqlhelper中,用这个类自定义过批量更新方法,在winform中使用一切ok。方法发你,看有用没。
有些细节一定要注意的是,表状态决定表数据的操作,比如表某行状态是修改,那么SqlCommandBuilder会执行update。但是这个状态你要控制好。另外,你传递的select语句,一定要和你所构造的表结构接近吻合。看方法。
/// <summary>
/// operare database by commandbuilder
/// </summary>
/// <param name="connectinString">connectinString</param>
/// <param name="commandString">commandString</param>
/// <param name="sourceDable">do update or insert database table</param>
public static int ExecuteByCommandBuilder(string connectinString, string commandString, DataTable sourceDable, SqlParameter sqlparam)
{
SqlConnection sqlcon = new SqlConnection();
sqlcon.ConnectionString = connectinString;
using (SqlCommand sqlcommand = new SqlCommand(commandString, sqlcon))
{
if (sqlparam != null)
{ sqlcommand.Parameters.Add(sqlparam); }
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = sqlcommand;
//DataSet ds = new DataSet();
//da.Fill(ds);
//ds.Tables[0].Merge(sourceDable, false);
SqlCommandBuilder sqlcommandbuilder = new SqlCommandBuilder(da);
return da.Update(sourceDable);
}
}
㈢ C#如何将datatable中的数据批量更新到MYSQL数据库
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;
}
㈣ 数据库中如何大批量修改数据
大数据量一般不要直接修改,最好分段,可以写个循环,5k或者5w左右一次,不然一旦遇到问题将会回滚全部数据,耗时耗资源