Update sqlite bulkcopy

This commit is contained in:
sunkaixuan 2024-02-06 16:24:06 +08:00
parent 29fbc5c593
commit 5c77c7269f

View File

@ -76,26 +76,34 @@ namespace SqlSugar
{ {
using (var cmd = cn.CreateCommand()) using (var cmd = cn.CreateCommand())
{ {
cmd.CommandText = this.Context.Insertable(dictionary.First()).AS(dt.TableName).ToSql().Key.Replace(";SELECT LAST_INSERT_ROWID();", ""); if (this.Context?.CurrentConnectionConfig?.MoreSettings?.IsCorrectErrorSqlParameterName == true)
foreach (DataRow dataRow in dt.Rows)
{ {
foreach (DataColumn item in dt.Columns) cmd.CommandText = this.Context.Insertable(dictionary.First()).AS(dt.TableName).ToSqlString().Replace(";SELECT LAST_INSERT_ROWID();", "");
{
if (IsBoolTrue(dataRow, item))
{
cmd.Parameters.AddWithValue("@" + item.ColumnName, true);
}
else if (IsBoolFalse(dataRow, item))
{
cmd.Parameters.AddWithValue("@" + item.ColumnName, false);
}
else
{
cmd.Parameters.AddWithValue("@" + item.ColumnName, dataRow[item.ColumnName]);
}
}
i += await cmd.ExecuteNonQueryAsync(); i += await cmd.ExecuteNonQueryAsync();
cmd.Parameters.Clear(); }
else
{
cmd.CommandText = this.Context.Insertable(dictionary.First()).AS(dt.TableName).ToSql().Key.Replace(";SELECT LAST_INSERT_ROWID();", "");
foreach (DataRow dataRow in dt.Rows)
{
foreach (DataColumn item in dt.Columns)
{
if (IsBoolTrue(dataRow, item))
{
cmd.Parameters.AddWithValue("@" + item.ColumnName, true);
}
else if (IsBoolFalse(dataRow, item))
{
cmd.Parameters.AddWithValue("@" + item.ColumnName, false);
}
else
{
cmd.Parameters.AddWithValue("@" + item.ColumnName, dataRow[item.ColumnName]);
}
}
i += await cmd.ExecuteNonQueryAsync();
cmd.Parameters.Clear();
}
} }
} }
return i; return i;
@ -104,30 +112,41 @@ namespace SqlSugar
{ {
using (var cmd = cn.CreateCommand()) using (var cmd = cn.CreateCommand())
{ {
cmd.CommandText = this.Context.Updateable(dictionary.First()) if (this.Context?.CurrentConnectionConfig?.MoreSettings?.IsCorrectErrorSqlParameterName == true)
.WhereColumns(whereColums)
.UpdateColumns(updateColums)
.AS(dt.TableName).ToSql().Key;
foreach (DataRow dataRow in dt.Rows)
{ {
foreach (DataColumn item in dt.Columns) cmd.CommandText = this.Context.Updateable(dictionary.First())
{ .WhereColumns(whereColums)
if (IsBoolTrue(dataRow, item)) .UpdateColumns(updateColums)
{ .AS(dt.TableName).ToSqlString();
cmd.Parameters.AddWithValue("@" + item.ColumnName, true);
}
else if (IsBoolFalse(dataRow, item))
{
cmd.Parameters.AddWithValue("@" + item.ColumnName, false);
}
else
{
cmd.Parameters.AddWithValue("@" + item.ColumnName, dataRow[item.ColumnName]);
}
}
i += await cmd.ExecuteNonQueryAsync(); i += await cmd.ExecuteNonQueryAsync();
cmd.Parameters.Clear(); }
else
{
cmd.CommandText = this.Context.Updateable(dictionary.First())
.WhereColumns(whereColums)
.UpdateColumns(updateColums)
.AS(dt.TableName).ToSql().Key;
foreach (DataRow dataRow in dt.Rows)
{
foreach (DataColumn item in dt.Columns)
{
if (IsBoolTrue(dataRow, item))
{
cmd.Parameters.AddWithValue("@" + item.ColumnName, true);
}
else if (IsBoolFalse(dataRow, item))
{
cmd.Parameters.AddWithValue("@" + item.ColumnName, false);
}
else
{
cmd.Parameters.AddWithValue("@" + item.ColumnName, dataRow[item.ColumnName]);
}
}
i += await cmd.ExecuteNonQueryAsync();
cmd.Parameters.Clear();
}
} }
} }
return i; return i;