如何使用 .NET 从 FoxPro 备注字段中提取数据?

发布于 2024-07-17 17:18:20 字数 195 浏览 9 评论 0原文

我正在编写一个 C# 程序,将 FoxPro 数据库放入数据表中,除了备注字段为空白或一些奇怪的字符外,一切正常。 我正在使用 C# .Net 2.0。 我尝试了 Jonathan Demarks 于 1 月 12 日发布的代码。我能够获取索引,但我不知道如何使用此索引从备忘录文件中获取数据。

请帮助我。

谢谢 马杜

I'm writing a C# program to get FoxPro database into datatable everything works except the memo field is blank or some strange character.
I'm using C# .Net 2.0.
I tried the code posted by Jonathan Demarks dated Jan 12. I am able to get the index but i don't know how to use this index to fetch the data from memo file.

Pleaese help me.

Thanks
Madhu

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

み青杉依旧 2024-07-24 17:18:20

您是否尝试过使用 FoxPro OLEDB 提供商? 如果数据库不使用 VFP8 或 9 引入的功能(特别是数据库事件),您也可以使用 ODBC 驱动程序。

这些常规字段是否包含文档或图像,或者文本备忘录或二进制备忘录? 您使用什么代码来提取数据?

Have you tried using the FoxPro OLEDB provider? If the database doesn't use features introduced by VFP8 or 9 (notably database events) you could use the ODBC driver as well.

Are these general fields containing documents or images, or text memos or binary memos? What code are you using to extract the data?

下壹個目標 2024-07-24 17:18:20

我创建了以下函数,将选择返回的对象转换为字节数组。

private byte[] ObjectToByteArray(Object obj)
{
    if (obj == null)
    {
        return null;
    }

    BinaryFormatter bf = new BinaryFormatter();
    MemoryStream ms = new MemoryStream();
    bf.Serialize(ms, obj);
    return ms.ToArray();
}

然后就可以显示该值了。

byte [] dBytes = ConvertObjectToByteArray(dr["profile"]);
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
string str = enc.GetString(dBytes);

您现在拥有 C# 本机字符串中的值,并且可以使用它执行您想要的操作。

I created the below function that converts the object returned by the selection to an array of bytes.

private byte[] ObjectToByteArray(Object obj)
{
    if (obj == null)
    {
        return null;
    }

    BinaryFormatter bf = new BinaryFormatter();
    MemoryStream ms = new MemoryStream();
    bf.Serialize(ms, obj);
    return ms.ToArray();
}

Then you are able to display the value.

byte [] dBytes = ConvertObjectToByteArray(dr["profile"]);
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
string str = enc.GetString(dBytes);

You now have the value in a C# native string and can do what you want with it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文