【问题标题】:Pasting a hyperlink value from C# to Access将 C# 中的超链接值粘贴到 Access
【发布时间】:2020-03-05 02:06:11
【问题描述】:

我正在将文件上传到 \temp\,但我想通过 Access 中给定列中的超链接访问它。我可以成功地将字符串粘贴到超链接字段,但字符串和文件本身之间没有链接。

我试图从浏览器复制粘贴网站地址到 Access,令人惊讶的是超链接与“字符串”一起粘贴

//upload arquivo
string conexaoAccess2 = ConfigurationManager.ConnectionStrings["conexaoAccess"].ToString();
using (OleDbConnection conexaodb1 = new OleDbConnection(conexaoAccess2))
{
    conexaodb1.Open();

    Random r = new Random();
    int n = r.Next();
    // pega somente nome 
    string[] f = camArq.Split('\\');
    string fn = f[(f.Length) - 1];
    string fullDest = @"C:\temp\" + nomeArqnoExt + n + fileExtension0;
    string q = "UPDATE tbl_reg SET Campo1 = @campo WHERE nome_user = @nome1";

    //copia arquivo para a pasta destino
    File.Copy(camArq, fullDest, true);

    //to save to the database
    OleDbCommand cmd = new OleDbCommand(q, conexaodb1);
    var parCamp = cmd.CreateParameter();
    parCamp.ParameterName = "campo";
    parCamp.DbType = DbType.String;
    parCamp.Value = fullDest;
    cmd.Parameters.Add(parCamp);

    var parNome1 = cmd.CreateParameter();
    parNome1.ParameterName = "nome1";
    parNome1.DbType = DbType.String;
    parNome1.Value = mdl.nome;
    cmd.Parameters.Add(parNome1);

    cmd.ExecuteNonQuery();
}

我希望字符串被复制为超链接,但是,没有假定这种类型的数据的 DbType,是吗?实际结果是:我可以成功地将文件路径粘贴到该字段,但该字段不包含任何超链接:

【问题讨论】:

    标签: c# ms-access hyperlink


    【解决方案1】:

    访问超链接类型字段需要由 # 字符分隔的 3 部分组成的值:displaytext#path#subreference。选项:

    1. 如果在 Access 表设计中使用超链接类型字段,请在要保存的字符串中包含 # 个字符。

    2. 只需使用文本字段保存不带 # 字符的路径字符串,然后在代码或格式字符串中使用 FollowHyperlink 方法以连接表达式的超链接结构:"#" & [fieldname] & "#" - 在查询或文本框 ControlSource 中计算并将文本框 IsHyperlink 属性设置为是的。

    【讨论】:

    • 子引用部分指的是什么?替代文字?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    相关资源
    最近更新 更多