我怎么能将参数传递给WHERE子句?

时间:2011-08-31 08:27:25

标签: c# database

问题的标题可能会产生误导。我需要从XML文件中获取属性。然后,使用该属性搜索数据库。由于属性的值是动态的,我必须尝试将其作为参数发送到SQL脚本的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

1 个答案:

答案 0 :(得分:9)

只需使用参数:

SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM dbo.U_User WHERE URI=@umail", cn);
da.SelectCommand.Parameters.AddWithValue("@umail", umail);