diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs index a90ddd973..d9dd7c32f 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs @@ -80,7 +80,18 @@ namespace SqlSugar { foreach (DataColumn item in dt.Columns) { - cmd.Parameters.AddWithValue("@" + item.ColumnName, dataRow[item.ColumnName]); + 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(); @@ -101,11 +112,11 @@ namespace SqlSugar { foreach (DataColumn item in dt.Columns) { - if (dataRow[item.ColumnName] != null && dataRow[item.ColumnName].ToString().IsIn(true.ToString())) + if (IsBoolTrue(dataRow, item)) { cmd.Parameters.AddWithValue("@" + item.ColumnName, true); } - else if (dataRow[item.ColumnName] != null && dataRow[item.ColumnName].ToString().IsIn(false.ToString())) + else if (IsBoolFalse(dataRow, item)) { cmd.Parameters.AddWithValue("@" + item.ColumnName, false); } @@ -120,6 +131,17 @@ namespace SqlSugar } return i; } + + private static bool IsBoolFalse(DataRow dataRow, DataColumn item) + { + return dataRow[item.ColumnName] != null && dataRow[item.ColumnName] is string && dataRow[item.ColumnName].ToString().IsIn(false.ToString()); + } + + private static bool IsBoolTrue(DataRow dataRow, DataColumn item) + { + return dataRow[item.ColumnName] != null && dataRow[item.ColumnName] is string && dataRow[item.ColumnName].ToString().IsIn(true.ToString()); + } + private static void Open(SqliteConnection cn) { if (cn.State != ConnectionState.Open)