我需要从多列而不是一列中选择包含关键字的行,例如:
"SELECT * From UserTable WHERE Name='" + name + "'" + " OR FullName='" + name + "'""
我想从MULTIPLE COLUMNS中选择包含变量'name'的行。但是上面的查询不起作用。应该做些什么改变?
如果Name包含值,或者FullName包含该值,或者即使两者都包含该值,我也会谎言获取这些行:)当前查询给出了异常:
Incorrect syntax near the keyword 'FullName'.
我也尝试了另一个例子:
SqlConnection cnn = new SqlConnection(conString);
SqlCommand cmd = new SqlCommand("Select * from TheHive WHERE Variable=@variable or Group like @group", cnn);
cmd.Parameters.Add("@Variable", SqlDbType.VarChar).Value = "wef";
cmd.Parameters.Add("@Group", SqlDbType.VarChar).Value = "wef" + "%";
cnn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
OpalData data = new OpalData();
data.ID = Convert.ToInt32(rdr["id"]);
data.CodeLine = rdr["CodeLine"].ToString();
data.Variable = rdr["Variable"].ToString();
data.Group = rdr["Group"].ToString();
data.Action = rdr["Action"].ToString();
data.Number = rdr["Number"].ToString();
knowledge.Add(data);
}
其Microsoft Azure表格为:
我仍然得到同样的错误。
我只是试图找到所有具有字符串'wef'的行,并期望输出为所有行,因为所有行都包含至少一列中的'wef'。
答案 0 :(得分:0)
我将假设你有一种情况,其中Name是像Joe一样的名字,FullName就像Joe Smith,你想要找到Joe的名字或者包含Joe的FullName。所以它应该是:
"SELECT * From UsersTable WHERE Name='" + name + "' OR FullName like '" + name + "%'";
好的,这对我有用:
SqlCommand cmd;
SqlDataReader dr;
string ConnectionString = ConfigurationManager.AppSettings["ConnectionString"];
string name = "Joe";
SqlConnection cnn = new SqlConnection(ConnectionString);
cmd = new SqlCommand("Select * from t_Users WHERE Name=@name or FullName like @fullname", cnn);
cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = name;
cmd.Parameters.Add("@fullname", SqlDbType.VarChar).Value = name + "%";
cnn.Open();
dr = cmd.ExecuteReader();
while (dr.Read())
{
}