1、解决SqliteDbMaintenance.GetColumnInfosByTableName方法没有取得小数长度

2、解决SqliteDataAdapter.Fill(DataSet ds)方法对System.Byte[]的填充未判断
This commit is contained in:
yhforver4 2022-04-16 13:29:35 +08:00
parent 58976d5a1c
commit 4c05b330a4
2 changed files with 18 additions and 1 deletions

View File

@ -424,7 +424,14 @@ namespace SqlSugar
DataRow daRow = dt.NewRow();
for (int i = 0; i < columns.Count; i++)
{
if (columns[i].DataType == System.Type.GetType("System.Byte[]"))
{
daRow[columns[i].ColumnName] = System.Text.Encoding.ASCII.GetBytes(dr.GetValue(i).ToString());
}
else
{
daRow[columns[i].ColumnName] = dr.GetValue(i);
}
}
dt.Rows.Add(daRow);
}

View File

@ -311,10 +311,20 @@ namespace SqlSugar
{
var type = dataReader.GetValue(2).ObjToString();
var length = 0;
var decimalDigits = 0;
if (type.Contains("("))
{
type = type.Split('(').First();
if (type.Contains(","))
{
var digit = type.Split('(').Last().TrimEnd(')');
decimalDigits = digit.Split(',').Last().ObjToInt();
length = digit.Split(',').First().ObjToInt();
}
else
{
length = type.Split('(').Last().TrimEnd(')').ObjToInt();
}
type = type.Split('(').First();
}
bool isIdentity = columns.FirstOrDefault(it => it.DbColumnName.Equals(dataReader.GetString(1),StringComparison.CurrentCultureIgnoreCase)).IsIdentity;
DbColumnInfo column = new DbColumnInfo()