【发布时间】:2013-04-23 23:08:24
【问题描述】:
是否可以在 DAO/Query 的帮助下使用 C# 更改 MS ACCESS 中的双列十进制大小(小数位数)。
根据 MSDN
size : 以字符为单位的字段大小(仅限文本和二进制字段)。
Size 只能在文本和二进制字段的 ALTER 查询中使用。
【问题讨论】:
是否可以在 DAO/Query 的帮助下使用 C# 更改 MS ACCESS 中的双列十进制大小(小数位数)。
根据 MSDN
size : 以字符为单位的字段大小(仅限文本和二进制字段)。
Size 只能在文本和二进制字段的 ALTER 查询中使用。
【问题讨论】:
当然,DAO 可以做到:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DAO_test
{
class Program
{
static void Main(string[] args)
{
// required COM reference: Microsoft Office 14.0 Access Database Engine Object Library
var dbe = new Microsoft.Office.Interop.Access.Dao.DBEngine();
Microsoft.Office.Interop.Access.Dao.Database db = dbe.Workspaces[0].OpenDatabase(@"C:\__tmp\testData.accdb");
Microsoft.Office.Interop.Access.Dao.Field fld = db.TableDefs["poiData"].Fields["lon"];
Console.WriteLine("Properties[\"DecimalPlaces\"].Value was: " + fld.Properties["DecimalPlaces"].Value);
fld.Properties["DecimalPlaces"].Value = 5;
Console.WriteLine("Properties[\"DecimalPlaces\"].Value is now: " + fld.Properties["DecimalPlaces"].Value);
db.Close();
Console.WriteLine("Hit a key...");
Console.ReadKey();
}
}
}
【讨论】:
Single 和Double 字段,DecimalPlaces 属性实际上更像是一个显示提示而不是其他任何东西。我刚刚在 Access 2010 中尝试过,我可以在 DecimalPlaces 设置为 4 的字段中添加一个小数点后 6 位的 Double。
Double,但如果这些数字代表货币金额,那么 Access 中的 Currency 类型是更好的选择。如果只关心显示的小数位数,则将该字段的Format 设置为Fixed,并将DecimalPlaces 值设置为您想要的小数位数。跨度>