如何将表名称和所选字段作为参数传递
本文关键字:字段 参数传递 | 更新日期: 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的。