string.format错误

时间:2010-08-12 06:14:09

标签: c# string.format

我一直在使用string.format搜索我的代码,似乎我找不到合适的代码。

DataColumn dtCol;
dtCol = new DataColumn("ImagePath", System.Type.GetType("System.String"));
dtImages.Columns.Add(dtCol);
dtImages.Columns["ImagePath"].Expression = string.Format("<a href=\"'{0}'+ImageFilename\">View Image</a>", ImageDownloadPath);

(ImageFilename是我数据库表上的一列) 上面的代码总是抛出错误 “语法错误:'&lt;'之前缺少操作数运算符“

我该如何正确地做到这一点?

4 个答案:

答案 0 :(得分:1)

或许尝试以下方法?

string.Format("<a href=\"{0}\\{1}\">View Image</a>", ImageDownloadPath, ImageFilename);

在您的代码中,您使用'围绕字符串格式标识符,然后将在您的格式化字符串中显示,并且ImageFilename属性未正确使用。它可以简单地添加为纯文本。

带有以下值的字符串结果如下:

ImageFilename = "1.jpg";
ImageDownloadPath = "http://www.downloadme.com/images";

Yours: <a href="'http://www.downloadme.com/images'+ImageFilename">View Image</a>
Mine: <a href="http://www.downloadme.com/images/1.jpg">View Image</a>

答案 1 :(得分:1)

问题一点也不清楚,但我认为问题根本不是编译时问题......实际上并不是string.Format问题。这是DataColumn.Expression的问题。你给出了一个包含尖括号的表达式,所以它认为你正在尝试进行比较。

我不能说我对DataColumn.Expression了解多少,但你应该研究它如何引用字符串......以及它如何引用字符串中的引号!例如,可能工作:

dtCol.Expression = string.Format
    ("'<a href=\"{0}'+ImageFilename+'\">View Image</a>'", 
     ImageDownloadPath);

但是,如果您没有尝试在表达式中计算HTML,那么我认为这可能会让您的生活变得更简单。你以后真的不能申请处理吗?

答案 2 :(得分:0)

试试这个:

dtImages.Columns["ImagePath"].Expression = 
string.Format("&lt;a href=\"'{0}'+ImageFilename\"&gt;View Image&lt;/a&gt;", ImageDownloadPath); 

我很确定&lt;和&gt;试图被解释为表达的一部分。

答案 3 :(得分:0)

感谢您帮助我。我能够弄清楚这样做的方法。感谢所有帖子。

alt text