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

SUT*_*SUT 0 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);
Run Code Online (Sandbox Code Playgroud)

.....

这个操作还有其他方法吗?

谢谢

SUT

Sha*_*ard 9

只需使用参数:

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