如何将表名称和所选字段作为参数传递

本文关键字:字段 参数传递 | 更新日期: 2023-09-27 17:58:20

我得到以下错误:

错误:-201消息:[IInformix.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;

如何将表名称和所选字段作为参数传递

你不能。

请改用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的。