如何使用C#和OleDB将富文本列添加到Access数据库表?

时间:2015-08-03 17:23:18

标签: c# sql ms-access oledb

在Access数据库中,我们可以将Text Format列的Long Text属性设置为Plain TextRich Text

如何使用OleDb API在C#中以编程方式将富文本列添加到表中?

2 个答案:

答案 0 :(得分:1)

  

如何使用OleDb API在C#中以编程方式将富文本列添加到表中?

我们不能使用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();

答案 1 :(得分:-1)

回答问题:“如何将富文本列添加到Access表”。

Access 2010及更高版本允许将富文本保存在备忘录中。 下面是我用来向Access表添加备忘录列的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();