0
问题的标题可能会引起误解。我需要从XML文件中获取属性。然后,使用该属性搜索数据库。由于属性的值是动态的,我必须尝试将它作为参数发送到SQL脚本的WHERE子句。但是,它总是返回无效的列错误。如何将参数传递给WHERE子句?
这里是代码的一部分:
string umail = "";
XDocument loaded = XDocument.Load(@"C:\1.xml");
var q = from c in loaded.Descendants("AdminUserDB.dbo.U_User")
select (string)c.Element("URI");
foreach (string em in q)
umail = em;
SqlConnection cn = new SqlConnection("server=(local);database=AdminUserDB;Persist Security Info=True; uid=sa;pwd=pwd");
cn.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM dbo.U_User WHERE URI=umail", cn);
.....
是否有此操作的任何其他方法?
感谢
SUT
你所得到的错误,因为在部分'URI = umail',数据库期待'umail'是一个列,但你打算在那里有一个值,所以你需要使用'@ umail'来标识它到'SqlDataAdapter',它是查询中的一个参数 - 在它被发送到数据库之前将被替换。 – Zabba