如何使用 C# 和 OleDB 将富文本列添加到 Access 数据库 table?
How to add rich text column to Access database table using C# and OleDB?
在 Access 数据库中,我们可以将 Long Text
列的 Text Format
属性设置为 Plain Text
或 Rich Text
。
我们如何使用 OleDb API 在 C# 中以编程方式将富文本列添加到 table?
How can we add a Rich text column to a table programmatically in C# using OleDb API?
我们无法使用 OleDb 来完成。为此,我们需要使用 Access DAO:
// required COM reference: Microsoft Office 14.0 Access Database Engine Object Library
//
// using Microsoft.Office.Interop.Access.Dao; ...
var dbe = new DBEngine();
Database db = dbe.OpenDatabase(@"C:\Users\Public\Database1.accdb");
TableDef tbd = db.TableDefs["MyTable"]; // existing table
var fld = new Field();
fld.Name = "MyRichMemo";
fld.Type = (short) DataTypeEnum.dbMemo;
tbd.Fields.Append(fld);
// now set "Text Format" property to "Rich Text"
fld.Properties.Append(fld.CreateProperty("TextFormat", DataTypeEnum.dbByte, 1));
db.Close();
回答问题:"How to add a rich text column to an Access table"。
Access 2010及以上版本允许在备忘录中保存富文本。
下面是我用来将备注列添加到 Access table 的 c# OleDB 代码。
public OleDbConnection myAccessConnection = new OleDbConnection();
myAccessConnection.ConnectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccessDb.accdb";
OleDbCommand sqlCommand = new OleDbCommand();
myAccessConnection.Open();
sqlCommand.Connection = myAccessConnection;
sqlCommand.CommandText = "ALTER TABLE [MyTableInMyAccessDb] ADD MyMemo MEMO";
sqlCommand.ExecuteNonQuery();
myAccessConnection.Close();
在 Access 数据库中,我们可以将 Long Text
列的 Text Format
属性设置为 Plain Text
或 Rich Text
。
我们如何使用 OleDb API 在 C# 中以编程方式将富文本列添加到 table?
How can we add a Rich text column to a table programmatically in C# using OleDb API?
我们无法使用 OleDb 来完成。为此,我们需要使用 Access DAO:
// required COM reference: Microsoft Office 14.0 Access Database Engine Object Library
//
// using Microsoft.Office.Interop.Access.Dao; ...
var dbe = new DBEngine();
Database db = dbe.OpenDatabase(@"C:\Users\Public\Database1.accdb");
TableDef tbd = db.TableDefs["MyTable"]; // existing table
var fld = new Field();
fld.Name = "MyRichMemo";
fld.Type = (short) DataTypeEnum.dbMemo;
tbd.Fields.Append(fld);
// now set "Text Format" property to "Rich Text"
fld.Properties.Append(fld.CreateProperty("TextFormat", DataTypeEnum.dbByte, 1));
db.Close();
回答问题:"How to add a rich text column to an Access table"。
Access 2010及以上版本允许在备忘录中保存富文本。 下面是我用来将备注列添加到 Access table 的 c# OleDB 代码。
public OleDbConnection myAccessConnection = new OleDbConnection();
myAccessConnection.ConnectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccessDb.accdb";
OleDbCommand sqlCommand = new OleDbCommand();
myAccessConnection.Open();
sqlCommand.Connection = myAccessConnection;
sqlCommand.CommandText = "ALTER TABLE [MyTableInMyAccessDb] ADD MyMemo MEMO";
sqlCommand.ExecuteNonQuery();
myAccessConnection.Close();