1

我收到以下错误:

错误:-201 消息:[Informix .NET 提供程序][Informix]出现语法错误。

当我尝试执行此代码时:

string table_name = resultDt.Rows[0][1].ToString();
string pdf_column = resultDt.Rows[0][0].ToString();
st.Append(" SELECT  ? FROM ?");
paramList.Clear();
paramList.Add("@tablename", table_name);
paramList.Add("@pdf_column", pdf_column);
resultDt =dalHelper.Return_DataTable(st.ToString(), CommandType.Text, paramList);
return resultDt;
4

1 回答 1

3

你不能。

请改用 String.Replace。

st.Append(" SELECT @pdf_column FROM @tablename");
st.Replace("@tablename", table_name);
st.Replace("@pdf_column", pdf_column);

如果 table_name 和 pdf_column 无论如何来自用户输入,您应该使用 QuoteName 函数(即QuoteName(table_name))来防止 sql 注入。不了解 Informix,但这里是 SqlServer 的一个。

于 2013-02-07T10:01:29.527 回答